담벼락에 게임의 소식을 흥미 있게 전하는 메시지와 이미지를 포스팅하여 글쓴이와 사용자의 친구들의 피드에 쓴 글을 노출시킨다.
담벼락에 너무 많은 포스팅을 하게 될 경우, 사용자가 스팸으로 인식할 수 있으니 의미 있는 컨텐츠를 선별하여 포스팅을 하도록 한다. 페이스북 포스팅일 때 페이스북 로그인이 안 되었을 경우 페이스북 로그인 창을 띄운다.
- facebook Image Size : 페이스북에서 피드에 게시할 때, 이미지 사이즈에 따라 게시하는 형태가 달라짐
- Best Size 600 x 315 이상, 가로 : 세로 = 1.91:1, 세로형 이미지의 경우 반대
[Facebook]
[Google +]
- iOS는 Google Sign In을 적용하면서 더 이상 포스팅 기능을 지원하지 않는다.
- Android Google Plus API가 삭제되어 Hive SDK v1.16.4부터 포스팅 기능을 지원하지 않는다. 또한 2019년 3월 7일부로 Google Plus API 서비스가 종료됨에 따라 SDK v1.16.3을 포함한 이전 버전에서 해당 기능의 정상 작동을 보장할 수 없다.
C2SModuleSns_Post
담벼락에 포스팅을 한다.
Request
argument name | type | desc | platform | 비고 |
---|---|---|---|---|
service | string | “googleplus” : 구글 플러스에 포스팅 (android) “facebook” : 페이스북에 포스팅 (iOS, android) |
— | |
service == “googleplus” 인 경우 (= 구글 플러스 포스팅) | ||||
message | string | 포스팅할 텍스트 | — | 2019.3.7부로 Google에서 해당 API 서비스 종료 |
service == “facebook” 인 경우 (= 페이스북 포스팅) | ||||
message | string | 포스팅할 텍스트 | — | |
title | string | 포스팅 타이틀 | — | |
image | image, raw image data, base64 encoded data string | 포스팅할 이미지 | — | |
appLinkURL | string | 앱 링크 url | — |
Response
포스팅 성공 여부
argument name | type | desc | platform | 비고 |
---|---|---|---|---|
argument 없음 | all |
샘플 코드
Unity®
API Reference: C2SModule.Sns.Post
- public static bool C2SModule.Sns.Post(C2SModule.Parameter arg, out C2SModule.Error error);
- public static bool C2SModule.Sns.Post(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public void FacebookPost(string title,string message,Texture2D image,string appLinkURL) { C2SModule.Error error; C2SModule.Parameter arg = new C2SParameter (); arg["service"] = "facebook"; arg["title"] = title; arg["message"] = message; arg["image"] = System.Convert.ToBase64String(image.EncodeToPNG()); arg["appLinkURL"] = appLinkURL; if( !C2SModule.Sns.Post( arg, out error ) ) { // Error 시 처리 } } |
Unreal
API Reference: HiveSDKUESns_Post
- void HiveSDKUESns_Post(FString fstrJson);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
TSharedPtr arg = MakeShareable(new FJsonObject); // Facebook 예제. arg->SetStringField(TEXT("service"), TEXT("facebook")); arg->SetStringField(TEXT("title"), TEXT("facebook test post title")); arg->SetStringField(TEXT("message"), TEXT("facebook test post Message")); //image, raw image data, base64 encoded data string 을 추가 arg->SetStringField(TEXT("image"), TEXT("base 64 encode string")); arg->SetStringField(TEXT("appLinkURL"), TEXT("app link 주소")); FString OutputString; TSharedRef< TJsonWriter<> > Writer = TJsonWriterFactory<>::Create(&OutputString); FJsonSerializer::Serialize(arg.ToSharedRef(), Writer); FHiveSDKModule::Get().HiveSDKUESns_Post(OutputString); |
Cocos2d-x
API Reference: C2SModuleSns_Post
- bool C2SModuleSns_Post(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Json::Value arg; arg["service"] = "facebook"; arg["title"] = "test post title"; arg["message"] = "test post Message"; arg["imageURL"] = "이미지url"; arg["appLinkURL"] = "앱링크 url"; Json::StyledWriter writer; std::string strJSON = writer.write(arg); C2SModule_Cocos2dx::C2SModuleError error; if( ::C2SModuleSns_Post( strJSON.c_str(), &error ) == false ) { CCLog( "====>>>> Message error (%s)", error.get()->GetMessage() ); } |
iOS
API Reference: C2SModuleSns Post
- +(BOOL)Post:(id)arg error:(NSError**)error;
- +(BOOL)Post:(id)arg error:(NSError**)error completionHandler:(void(^)(NSDictionary *, NSError*))
completionHandler;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
NSError* error; NSMutableDictionary* arg = [[NSMutableDictionary alloc]init]; //페이스북에 포스팅하는 경우 arg NSString* message = @"포스팅할 텍스트"; NSString* title = @"포스팅 타이틀"; NSString* image = @"포스팅 할 이미지"; //NSData 나 UIImage 타입도 가능 NSString* appLinkUrl = @"앱링크 URL"; [arg setObject:@"facebook" forKey:@"service"]; [arg setObject:message forKey:@"message"]; [arg setObject:title forKey:@"title"]; [arg setObject:image forKey:@"image"]; [arg setObject:appLinkUrl forKey:@"appLinkURL"]; [C2SModuleSns Post:arg error:&error completionHandler:^(NSDictionary* resultArg, NSError* resultError){ if (error == nil) { //succeed } }]; |