【问题标题】:Open Graph Facebbok SDK2.5开放图谱 Facebook SDK 2.5
【发布时间】:2016-03-22 13:49:22
【问题描述】:

我对请求和发送对象的所有开放图机制有点困惑。 目前我正在做以下事情:

FBSDKGameRequestContent *gameRequestContent = [[FBSDKGameRequestContent alloc] init];
gameRequestContent.message = [SPBLabelUtils stringMessageForKey:@"FacebookAskLivesMessage"];
gameRequestContent.recipients = friends;
gameRequestContent.objectID = @"794790780644074";
gameRequestContent.actionType = FBSDKGameRequestActionTypeAskFor;

FBSDKGameRequestDialog *dialog = [[FBSDKGameRequestDialog alloc] init];
dialog.frictionlessRequestsEnabled = TRUE;
dialog.content = gameRequestContent;
dialog.delegate = self;
NSError *error;
if([dialog canShow] && [dialog validateWithError:&error]){
    [dialog show];
}else if(error){
    [self showAlertForError:error];
}
else{
    [self showAlertWithMessage:[SPBErrors messageForCode:@"FBE:CantShowDialog"] title:[SPBLabelUtils stringMessageForKey:@"FacebookTitle"]];
}

并在我的:

- (void)gameRequestDialog:(FBSDKGameRequestDialog *)gameRequestDialog didFailWithError:(NSError *)error

Error Domain=com.facebook.sdk.share Code=2 "无法操作 完全的。 (com.facebook.sdk.share 错误 2.)" UserInfo=0x17887f7c0 {com.facebook.sdk:FBSDKErrorDeveloperMessageKey=对不起,这个功能 现在不可用:处理此问题时发生错误 要求。请稍后再试。}

我不确定我是否完全理解 objectID 的想法 - 我是否需要在每次需要时创建一个对象? 如果我这样做,我是否需要使用“创建代码”并将其链接到包含所有元数据的页面的页面? 为什么我每次都要创建一个新对象?我什至不需要阅读它,只是为了通知其他玩家他们有一个待处理的对象请求。

API 不是 100% 明确的。 如果有人可以解释\给出教程链接\发布示例代码,那就太好了。 谢谢

【问题讨论】:

  • 如果 FB 说这个功能现在不可用,那么我猜你会找到另一种方法。
  • 你有什么想法吗?

标签: ios facebook facebook-graph-api sdk


【解决方案1】:

您从哪里获得对象的 ID?您正在使用的是一个示例对象。您将需要(至少)创建一个真正的 Open Graph 对象,您可以在代码中使用它来引用。

【讨论】:

  • 我已经解决了一段时间,但这就是原因。他们的对象创建平台有点马虎......
  • 很高兴您修复了它!以后可以编辑问题或添加答案,以便其他有相同问题的人找到解决方案吗?
  • 是的。我通常会。干杯
  • 顺便问一下:Victory 对象呢?我应该使用样品吗?因为我不允许创建胜利对象。 (就我而言)
【解决方案2】:

我已经坚持了几个小时。希望有人能在我的回答中找到这个问题的解决方案。

在您的项目设置中,转到 facebook 上的“打开图表”部分。创建一些对象类型。然后顶部有一个按钮“工具和支持”。

点击后你会看到几个链接,你需要的是“对象浏览器”。

对象浏览器是必需的部分。组合框上有“类型:”文本,它包含我们之前创建的对象类型。所选类型有一个“新建对象”按钮。

当您创建新对象时,它会获取他的 ID。 这就是您要查找的对象 ID。

可能有更好的方法来查找“对象浏览器”部分。

还有一件更重要的事情:

FBSDKGameRequestContent *Content = [[ FBSDKGameRequestContent alloc ] init];
            Content.title = @"Title test";
            Content.message = @"Test message";
            Content.data = @"Test data";
            Content.objectID = @"1012001268809871";
            Content.actionType = FBSDKGameRequestActionTypeAskFor;
            Content.filters = FBSDKGameRequestFilterAppUsers;
            fbRequestDialog.content = Content;
            fbRequestDialog.delegate = self;
            BOOL Result = [ fbRequestDialog show ];

这段代码对我来说很好用。如您所见,“objectID”字段是字符串,但它代表数字字符串。现在你知道它是什么样子了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 2015-03-03
    • 2012-05-19
    相关资源
    最近更新 更多