Hive는 유저가 자신의 계정과 Facebook 계정과 연동할 수 있는 기능을 제공합니다. 이에 따라 여러분은 Hive API를 이용하여 유저의 Facebook 프로필과 유저의 Facebook 친구들 목록을 조회할 수 있고, 유저가 Facebook 친구에게 메시지를 전송하게 할 수 있으며, 유저가 Facebook 담벼락에 글을 등록하게 할 수 있습니다.
Facebook 기능을 이용하려면, 유저가 Facebook에 로그인 되어 있어야 합니다. Facebook 기능을 수행하려고 할 때 유저가 Facebook에 로그인 되어 있지 않다면 Hive 클라이언트가 Facebook의 로그인 페이지를 띄워줍니다.
Facebook 프로필 보기
유저의 Facebook 프로필 정보를 조회하려면 SocialFacebook 클래스의 getMyProfile()
메서드를 호출하세요. 조회한 프로필 정보는 ProfileFacebook 목록에 담겨 반환됩니다.
API Reference: hive.SocialFacebook.getMyProfile
1 2 3 4 5 6 7 |
using hive; SocialFacebook.getMyProfile((ResultAPI result, List<ProfileFacebook> profileList) => { if (result.isSuccess()){ // 호출 성공 } }); |
API Reference: SocialFacebook::getMyProfile
1 2 3 4 5 6 7 8 9 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; SocialFacebook::getMyProfile([=](ResultAPI result, vector<ProfileFacebook> profileList) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook.getMyProfile
1 2 3 4 5 6 7 |
import com.hive.SocialFacebook SocialFacebook.getMyProfile { result, profileList -> if (result.isSuccess) { // 호출 성공 } } |
API Reference: com.hive.SocialFacebook.getMyProfile
1 2 3 4 5 6 7 |
import com.hive.SocialFacebook; SocialFacebook.getMyProfile((result, profileList) -> { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebookInterface.getMyProfile
1 2 3 4 5 6 7 |
import HIVEService SocialFacebookInterface.getMyProfile() { result, profileList in if result.isSuccess() { // 호출 성공 } } |
API Reference: HIVESocialFacebook:getMyProfile
1 2 3 4 5 6 7 |
#import <HIVEService/HIVEService-Swift.h> [HIVESocialFacebook getMyProfile: ^(HIVEResultAPI *result, NSArray<HIVEProfileFacebook *> *profileList) { if ([result isSuccess]) { // 호출 성공 } }]; |
Facebook 친구 목록 조회하기
유저의 Facebook 친구 목록을 조회하려면 SocialFacebook 클래스의 getFriends()
메서드를 호출하세요.
다음은 유저의 Facebook 친구 목록을 조회하는 예제 코드입니다.
API Reference: hive.SocialFacebook.getFriends
1 2 3 4 5 6 7 |
using hive; SocialFacebook.getFriends((ResultAPI result, List<ProfileFacebook> profileList) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook::getFriends
1 2 3 4 5 6 7 8 9 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; SocialFacebook::getFriends([=](ResultAPI result, vector<ProfileFacebook> profileList) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook.getFriends
1 2 3 4 5 6 7 |
import com.hive.SocialFacebook SocialFacebook.getFriends { result, profileList -> if (result.isSuccess) { // 호출 성공 } } |
API Reference: com.hive.SocialFacebook.getFriends
1 2 3 4 5 6 7 |
import com.hive.SocialFacebook; SocialFacebook.getFriends((result, profileList) -> { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebookInterface.getFriends
1 2 3 4 5 6 7 |
import HIVEService SocialFacebookInterface.getFriends() { result, profileList in if result.isSuccess() { // 호출 성공 } } |
API Reference: HIVESocialFacebook:getFriends
1 2 3 4 5 6 7 |
#import <HIVEService/HIVEService-Swift.h> [HIVESocialFacebook getFriends: ^(HIVEResultAPI *result, NSArray<HIVEProfileFacebook *> *profileList) { if ([result isSuccess]) { // 호출 성공 } }]; |
Facebook 친구 초대하기
Hive 계정에 Facebook 계정을 연동한 유저는 유저의 Facebook 친구들을 유저가 이용 중인 게임에 초대할 수 있습니다. 유저가 Facebook 친구에게 초대 메시지를 보낼 수 있는 창을 띄우려면, SocialFacebook 클래스의 showInvitationDialog()
메서드를 호출하세요.
함수 파라미터로 전달하는 FacebookMessage 오브젝트에는 수신자, 창 제목, 메시지 내용 필드가 있습니다. 이 중 수신자 정보는 Facebook 자체적으로 처리하게 되어 있기 때문에 Hive가 수신자 정보를 알 수가 없습니다. 때문에 수신자 정보는 빈 목록으로 보내세요. 창 제목이나 메시지 내용을 채워도 Facebook이 스팸으로 인식할 수 있기 때문에, 유저가 직접 채우도록, 필드를 채우지 않고 보내기를 권장합니다.
다음은 유저가 Facebook 친구에게 초대 메시지를 보내는 예제 코드입니다.
API Reference: hive.SocialFacebook.showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using hive; FacebookMessage content = new FacebookMessage (); content.message = "Message"; content.dialogTitle = "Title"; content.data = "hidden payload data"; // 초대 메세지의 수신자 정보는 작성하지 않음 content.recipients = null; // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 SocialFacebook.showInvitationDialog(content, (ResultAPI result, List<String> invitedUserList) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook::showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; FacebookMessage content = new FacebookMessage(); content.message = "Message"; content.dialogTitle = "Title"; content.data = "hidden payload data"; // 초대 메세지의 수신자 정보는 작성하지 않음 content.recipients = nullptr; // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 SocialFacebook::showInvitationDialog(content, [=](ResultAPI result, vector<String> invitedUserList) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook.showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import com.hive.SocialFacebook import com.hive.SocialFacebook.SocialFacebookMessage val content = SocialFacebookMessage().apply { message = "Message" dialogTitle = "Title" data = "hidden payload data" // 초대 메시지의 수신자 정보는 작성하지 않음 recipients = null } // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 SocialFacebook.showInvitationDialog(content) { result, invitedUserList -> if (result.isSuccess) { // 호출 성공 } } |
API Reference: com.hive.SocialFacebook.showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import com.hive.SocialFacebook; import com.hive.SocialFacebook.SocialFacebookMessage; SocialFacebook.SocialFacebookMessage content = new SocialFacebook.SocialFacebookMessage(); content.message = "Message"; content.dialogTitle = "Title"; content.data = "hidden payload data"; // 초대 메시지의 수신자 정보는 작성하지 않음 content.recipients = null; // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 SocialFacebook.showInvitationDialog(content, (result, invitedUserList) -> { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebookInterface.showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import HIVEService let content = SocialFacebookMessage() content.message = "Message" content.dialogTitle = "Title" content.data = "hidden payload data" // 초대 메세지의 수신자 정보는 작성하지 않음 content.recipients = nil; // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 SocialFacebookInterface.showInvitationDialog(content) { result, invitedUserList in if result.isSuccess() { // 호출 성공 } } |
API Reference: HIVESocialFacebook:showInvitationDialog
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#import <HIVEService/HIVEService-Swift.h> HIVESocialFacebookMessage *content = [[HIVESocialFacebookMessage alloc] init]; content.message = @"Message"; content.dialogTitle = @"Title"; content.data = @"hidden payload data"; // 초대 메세지의 수신자 정보는 작성하지 않음 content.recipients = nil; // Facebook 초대 메시지 전송을 위한 초대 대화 상자 노출 [HIVESocialFacebook showInvitationDialog: content handler: ^(HIVEResultAPI *result, NSArray<NSString *> *invitedUserList) { if ([result isSuccess]) { // 호출 성공 } }]; |
Facebook 친구에게 메시지 보내기
유저의 Facebook 친구에게 메시지를 보내려면 SocialFacebook 클래스의 sendMessageFacebook()
메서드를 호출하세요. 함수의 파라미터로 전달하는 FacebookMessage 오브젝트에는 메시지 내용 뿐만 아니라, 부가 정보를 함께 담아 보내야 합니다.
다음은 한 명의 Facebook 친구에게 메시지를 보내는 예제 코드입니다.
API Reference: hive.SocialFacebook.sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using hive; FacebookMessage content = new FacebookMessage (); content.message = "Message"; content.dialogTitle = "Title"; content.recipients = new List<String> {"수신할 친구의 facebook ID"}; content.data = "hidden payload data"; SocialFacebook.sendMessageFacebook(content, (ResultAPI result) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook::sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; FacebookMessage content; content.message = "Message"; content.dialogTitle = "Title"; content.recipients = {"수신할 친구의 facebook ID"}; content.data = "hidden payload data"; SocialFacebook::sendMessageFacebook(content, [=](ResultAPI result) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook.sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import com.hive.SocialFacebook import com.hive.SocialFacebook.SocialFacebookMessage val content = SocialFacebookMessage().apply { message = "Message" dialogTitle = "Title" recipients = arrayOf("수신할 친구의 facebook ID") data = "hidden payload data" } SocialFacebook.sendMessageFacebook(content) { result -> if (result.isSuccess) { // 호출 성공 } } |
API Reference: com.hive.SocialFacebook.sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import com.hive.SocialFacebook; import com.hive.SocialFacebook.SocialFacebookMessage; SocialFacebook.SocialFacebookMessage content = new SocialFacebook.SocialFacebookMessage(); content.message = "Message"; content.dialogTitle = "Title"; content.recipients = new String[]{"수신할 친구의 facebook ID"}; content.data = "hidden payload data"; SocialFacebook.sendMessageFacebook(content, result -> { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebookInterface.sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import HIVEService let content = SocialFacebookMessage() content.message = "Message" content.dialogTitle = "Title" content.recipients = ["수신할 친구의 facebook ID"] content.data = "hidden payload data" SocialFacebookInterface.sendMessageFacebook(content) { result in if result.isSuccess() { // 호출 성공 } } |
API Reference: HIVESocialFacebook:sendMessageFacebook
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#import <HIVEService/HIVEService-Swift.h> HIVESocialFacebookMessage *content = [[HIVESocialFacebookMessage alloc] init]; content.message = @"Message"; content.dialogTitle = @"Title"; content.recipients = [NSArray arrayWithObject:@"수신할 친구의 facebook ID", nil]; content.data = @"hidden payload data"; [HIVESocialFacebook sendMessageFacebook: content handler: ^(HIVEResultAPI *result) { if ([result isSuccess]) { // 호출 성공 } }]; |
Facebook 담벼락에 뉴스 피드 남기기
Hive는 게임 홍보의 한 방법으로, 유저가 유저의 Facebook 담벼락에 여러분이 작성한 뉴스 피드를 게시할 수 있는 기능을 제공합니다. 뉴스 피드는 제목, 글, 이미지로 구성할 수 있으며, 컨텐트를 눌렀을 때 이동할 페이지 링크를 설정할 수 있습니다.
게시글에 첨부되는 이미지의 크기에 따라 Facebook에 글이 게시되는 형태가 달라집니다. 권장하는 이미지 크기는 다음과 같습니다. 이미지 크기에 대한 자세한 내용을 보려면 Facebook 개발자 사이트를 참고하세요.
- 크기: 600×315 px 이상
- 이미지 비율: 1.91:1 (가로:세로 비율. 세로형 이미지에서는 반대)
유저가 뉴스 피드를 남기게 하려면 SocialFacebook 클래스의 postFacebookWithContentURL()
메서드를 호출하세요. 함수의 첫 번째 파라미터로 전달하는 contentURL(string)에는 뉴스 피드에 남기려는 콘텐츠 URL을 담아 보내야 합니다.
다음은 유저의 Facebook 담벼락에 올릴 뉴스 피드와 함께 유저가 코멘트를 작성할 수 있는 편집 창을 띄우는 예제 코드입니다.
API Reference: hive.SocialFacebook.postFacebookWithContentURL
1 2 3 4 5 6 7 8 9 |
using hive; String contentURL = "contentURL"; SocialFacebook.postFacebookWithContentURL(contentURL, (ResultAPI result) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook::postFacebookWithContentURL
1 2 3 4 5 6 7 8 9 10 11 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; string contentURL = "contentURL"; SocialFacebook::postFacebookWithContentURL(contentURL, [=](ResultAPI result) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebook.postFacebookWithContentURL
1 2 3 4 5 6 7 8 9 |
import com.hive.SocialFacebook val contentURL = "contentURL" SocialFacebook.postFacebookWithContentURL(contentURL) { result -> if (result.isSuccess) { // 호출 성공 } } |
API Reference: com.hive.SocialFacebook.postFacebookWithContentURL
1 2 3 4 5 6 7 8 9 |
import com.hive.SocialFacebook; String contentURL = "contentURL"; SocialFacebook.postFacebookWithContentURL(contentURL, result -> { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: SocialFacebookInterface.postFacebookWithContentURL
1 2 3 4 5 6 7 8 9 |
import HIVEService let contentURL = "contentURL" SocialFacebookInterface.postFacebookWithContentURL(content) { result in if result.isSuccess() { // 호출 성공 } } |
API Reference: HIVESocialFacebook::postFacebookWithContentURL:handler:
1 2 3 4 5 6 7 8 9 |
#import <HIVEService/HIVEService-Swift.h> NSString *contentURL = @"contentURL"; [HIVESocialFacebook postFacebookWithContentURL: content handler: ^(HIVEResultAPI *result) { if ([result isSuccess]) { // 호출 성공 }) }]; |
참고: Facebook 기능 이용 관련 주요 클래스
Facebook 기능을 사용하기 위한 SocialFacebook API를 이용할 때 필요한 오브젝트들입니다.
ProfileFacebook 클래스
Facebook과 계정이 연동된 유저의 Facebook 프로필 정보는 ProfileFacebook
클래스로 정의하며, 다음의 정보들로 구성됩니다.
Name | Type | Description | Returned |
---|---|---|---|
uid | String | Facebook이 발급한 app-scoped 유저 ID | 항상 |
String | Facebook에 설정된 유저의 이메일 주소.. | 유저가 Facebook에 본인의 이메일 주소가 공유 가능하도록 권한을 설정했을 때만 제공됨 | |
username | String | Facebook에 설정된 유저의 이름 | 선택 |
profileImageUrl | String | Facebook에 설정된 유저의 프로파일 이미지 URL | 선택 |
FacebookMessage 클래스
친구에게 보내는 Facebook 메시지는 FacebookMessage 클래스로 정의합니다.
Name | Type | Description | Required |
---|---|---|---|
recipients | String 목록
|
메시지를 수신할 Facebook 친구들의 Facebook ID 목록. 주의. 발송 메시지가 초대 메시지일 때는 비어 있는 상태로 보내세요. |
필수 |
dialogTitle | String(50) | 메시지 대화 상자의 제목 | 선택 |
message | String | 메시지 내용 | 선택 |
data | String(255) | 메시지와 함께 전달할 숨김 데이터 | 선택 |