gpt4 book ai didi

ios - 使用 Open Graph 操作创建对象时出现 "Could not generate preview text"错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:46:41 25 4
gpt4 key购买 nike

我正在将 iOS SDK 与 native 对话框一起使用,以尝试发布对象和操作。

当我调用 presentShareDialogWithOpenGraphAction 时,Facebook 应用程序打开,短暂显示包含我的帖子的对话框,然后返回到我的应用程序并显示错误:

无法生成预览文本

我的代码是这样的:

NSDictionary* object = @{
@"fbsdk:create_object": @YES,
@"type": @"appsterbator.app_idea",
@"title": @"test",
@"url": @"http://test.com",
};
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:object
forKey:@"app_idea"];


[FBDialogs presentShareDialogWithOpenGraphAction:action actionType:@"app_idea.create"
previewPropertyName:@"app_idea"
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
NSLog(@"%@", error);
}];

此外,是否可以发布一个实际上没有 URL 的开放图谱对象?

最佳答案

我有相同的症状,但解决方法不同。 Facebook SDK 3.5.* 自分享对话框结束测试版以来。

我有一个自定义的对象图故事:求解 -> 拼图。这是我第一次与 OG 合作,所以对于更熟悉它的人来说这似乎是显而易见的,但它让我停滞了足够长的时间,以至于我想分享。

我在 developer site 上浏览了共享对话框示例,但与 Open Graph 相关的共享无法通过简单的复制粘贴进行。我想是因为 OG 对象与 App ID 和 URL 主机等相关联。我设置了我的 Web 主机以便我可以为我的对象提供 OG 数据,并配置我的应用程序以允许该主机等。

因此,我着手调整示例代码以使用“opengraph/stories -> Get Code”弹出窗口中存在的参数。将平台设置为 iOS SDK,我得到了以下创建操作:

NSMutableDictionary<FBGraphObject> *action = [FBGraphObject graphObject];
action[@"puzzle"] = @"http://samples.ogp.me/463417983744195";

[FBRequestConnection startForPostWithGraphPath:@"me/shapeshuffle:solve"
graphObject:action
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error) {
// handle the result
}];

我将我的故事和应用特定值交换到示例代码中,导致问题中描述的错误和症状。我花了比我愿意承认的时间更长的时间来摆弄托管我的 OG 对象的服务器、FB 应用程序设置、弹出共享对话框的不同方式等。

问题的根源在于,在弹出对话框时,FB 无法将操作和对象与我的应用程序中的配置相匹配——因此与生成预览文本相关的错误代码略显模糊。 FB 未找到该操作,因为“me/shapeshuffle:solve”(“获取代码”工具中的操作字符串)未解析。如果我了解获取代码工具中可用的所有不同选项,我可能会避免这种情况,但请记住,我只想弹出一个共享对话框。看起来很简单。

我通过这个有用的 tutorial 使用 Graph API 浏览器,并最终得到以下从我从 FB 工具获得的字符串到实际有效字符串的映射:

行动:我/shapeshuffle:solve => shapeshuffle:solve

3 个小角色的痛苦。这是我完成的代码的样子:

NSString *objectUrl = [NSString stringWithFormat:@"%@puzzleId=%d", @"http://myhost.com/puzzle/object?", puzzleId];

id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:objectUrl forKey:@"puzzle"];
[action setObject:timeString forKey:@"time"];

[FBDialogs presentShareDialogWithOpenGraphAction:action
actionType:@"shapeshuffle:solve"
previewPropertyName:@"puzzle"
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if(error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
}];

关于ios - 使用 Open Graph 操作创建对象时出现 "Could not generate preview text"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com