2016-02-23 29 views
0

我需要在iOS應用程序(已經有一個可用的Facebook登錄系統)上實現遊戲邀請(即邀請不是應用程序用戶的朋友嘗試應用程序)。似乎有幾種可能的方式來做到這一點,每種方式都有自己的不同要求。 FBSDKGameRequestDialog似乎是一個很好的方法。 https://developers.facebook.com/docs/games/services/gamerequests的教程說:FBSDKGameRequestDialog與FBSDKGameRequestFilterAppNonUsers錯誤

「或者,通過指定app_non_users,發件人只會看到以前未驗證過該應用的朋友,在使用請求邀請新用戶進入遊戲時應該使用此功能。

這似乎正是我要找的。因此,我想這:

FBSDKGameRequestContent* content = [[FBSDKGameRequestContent new] autorelease]; 
content.actionType = FBSDKGameRequestActionTypeSend; 
content.filters = FBSDKGameRequestFilterAppNonUsers; 
content.message = @"something"; 
content.title = @"something"; 
content.objectID = @"1"; // No idea what to put here 

FBSDKGameRequestDialog* dialog = [[FBSDKGameRequestDialog new] autorelease]; 
dialog.content = content; 
dialog.delegate = self; 

NSError* error = nil; 
if(![dialog validateWithError: &error]) 
    NSLog(@"%@", error); 
else 
    [dialog show]; 

對話框啓動,但要求有一個錯誤,即委託:

錯誤域= com.facebook.sdk.share代碼= 100 「(空)」 的UserInfo = {com.facebook.sdk:FBSDKErrorDeveloperMessageKey =無效的fbid。}

該錯誤消息不是非常有用,我也不能找到任何地方爲什麼發生,或者確切的要求是什麼,這是可能的。 (是的,我已成功登錄到Facebook,其他所有工作都很順利,我不知道「Invalid fbid」來自哪裏)

相同的教程頁面提供了一個替代方案,明確邀請朋友列表,並使用您自己的GUI。然而,它說:

「此功能只提供給遊戲在Facebook上桌面存在」

顯然它不打擾告訴這意味着什麼,或者給一個鏈接到更多信息。當然,請求不起作用。 (錯誤說「請在你的應用程序的設置中設置一個Canvas URL」,即使在瀏覽Facebook自己的文檔和使用Google搜索之後,我也不知道它是什麼意思或者怎麼做。)

無論哪種方式,我寧願這是SDK自己的對話框,因爲它的工作量少得多。

回答

0

objectId引用「正在發送的對象的Open Graph對象ID」。假設我向您發送了100個應用內貨幣,那麼這將是您爲該「禮物」創建的對象的ID。

如果您不打算髮送遊戲內物品,則不必爲其提供值,並且在您的示例中,1顯然不是對象的有效標識。該消息可能更具描述性。