FBSDKGameRequestDialog与FBSDKGameRequestFilterAppNonUsers错误

时间:2016-02-23 12:34:40

标签: ios facebook

我需要在iOS应用程序(已经有一个有效的Facebook登录系统)上实现游戏邀请(即邀请不是应用程序用户的朋友来试用该应用程序)。似乎有几种可能的方法,每种方法都有自己不同的要求。 FBSDKGameRequestDialog似乎是一种很有前途的方法。 https://developers.facebook.com/docs/games/services/gamerequests上的教程说:

"或者,通过指定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];

对话框启动,但调用委托时出现错误,即:

错误Domain = com.facebook.sdk.share Code = 100"(null)" UserInfo = {com.facebook.sdk:FBSDKErrorDeveloperMessageKey =无效的fbid。}

该错误消息不是很有帮助,我也无法找到它发生的原因,或者确切的要求是什么。 (是的,我已经成功登录到Facebook。其他一切工作正常。我不知道那里"无效的费用"来自。)

同一个教程页面提供了另外一种方法,通过明确请求一个可邀请的朋友列表,并使用您自己的GUI。但是,它说:

"此功能仅适用于在Facebook桌面上存在的游戏"

显然,它并不打算告诉这意味着什么,或者提供更多信息的链接。当然,提出请求并不起作用。 (错误显示"请在您的应用设置"中设置画布网址,即使在浏览了Facebook自己的文档后,我也不知道它的含义或操作方法。谷歌搜索。)

无论哪种方式,我更喜欢SDK自己的对话框,因为它的工作要少得多。

1 个答案:

答案 0 :(得分:0)

objectId指的是正在发送的对象的" Open Graph对象ID。"。假设我发给你的100个硬币你的应用内货币,那么这就是你为这个"礼物"创建的对象的ID。

如果您不打算发送游戏内物品,则不必为其提供值,并且在您的示例中,1显然不是对象的有效ID。该消息可能更具描述性。