Ios &引用;无法生成预览文本";使用“打开图形”操作创建对象时出错
我正在使用iOSSDK和本机对话框来尝试发布对象和操作 当我使用OpenGraphAction调用Ios &引用;无法生成预览文本";使用“打开图形”操作创建对象时出错,ios,facebook,facebook-opengraph,fbnativedialogs,Ios,Facebook,Facebook Opengraph,Fbnativedialogs,我正在使用iOSSDK和本机对话框来尝试发布对象和操作 当我使用OpenGraphAction调用presentShareDialogWithOpenGraphAction时,Facebook应用程序将打开,简要显示包含我文章的对话框,然后返回到我的应用程序,并显示错误: 无法生成预览文本 我的代码如下所示: NSDictionary* object = @{ @"fbsdk:create_object": @YES,
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);
}];
NSDictionary*对象=@{
@“fbsdk:创建_对象”:@YES,
@“类型”:@“appsterbator.app_idea”,
@“标题”:@“测试”,
@“url”:@”http://test.com",
};
id action=(id)[FBGraphObject graphObject];
[动作集对象:对象
福基:@“app_idea”];
[FBDialogs presentShareDialogWithOpenGraphAction:action actionType:@“app\u idea.create”
previewPropertyName:@“应用程序创意”
处理程序:^(FBAppCall*调用,NSDictionary*结果,NSError*错误){
NSLog(@“%@”,错误);
}];
另外,是否可以发布一个实际上没有URL的开放图形对象?也有同样的问题。确保基本信息中的应用程序域包含oAuth域。我发现一件奇怪的事情是,为了添加此功能,您需要启用此功能,只有在启用页面选项卡、移动Web或其他选项时才能添加此功能 也有同样的问题。确保基本信息中的应用程序域包含oAuth域。我发现一件奇怪的事情是,为了添加此功能,您需要启用此功能,只有在启用页面选项卡、移动Web或其他选项时才能添加此功能 我有同样的症状,但治疗方法不同。Facebook SDK 3.5.*自共享对话框推出测试版以来 我有一个自定义的对象图故事:解->谜。这是我第一次与OG合作,所以这对熟悉OG的人来说似乎很明显,但它让我停滞不前,我想与大家分享 我在上浏览了共享对话框的示例,但是通过简单的复制粘贴,打开与图形相关的共享将无法工作。我想是因为OG对象与应用程序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
}];
NSMutableDictionary*action=[FBGraphObject-graphObject];
动作[@“拼图”]=@”http://samples.ogp.me/463417983744195";
[FBRequestConnection startForPostWithGraphPath:@“me/shapeshuffle:solve”
graphObject:动作
completionHandler:^(FBRequestConnection*连接,
身份证结果,
N错误*错误){
//处理结果
}];
我将我的故事和应用程序特定的值交换到示例代码中,导致问题中描述的错误和症状。
我花了比我愿意承认的更长的时间去摆弄托管我的OG对象的服务器、FB应用程序设置、弹出共享对话框的不同方式等等
问题的根源在于弹出对话框时,FB无法将动作和对象与我的应用程序中的配置相匹配-因此,生成预览文本时出现了稍微模糊的错误代码。FB找不到操作,因为“me/shapeshuffle:solve”(获取代码工具中的操作字符串)无法解析。如果我理解了Get Code工具中提供给我的所有不同选项,我可能会避免这种情况,但请记住,我只想弹出一个共享对话框。看起来很简单
通过这个有用的工具,我使用了Graph API explorer,并完成了以下从FB工具获得的字符串到实际工作的映射:
行动:
me/shapeshuffle:solve=>shapeshuffle:solve
三个小角色都很痛苦。下面是我完成的代码的样子:
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!");
}
}];
NSString*objectUrl=[NSString stringWithFormat:@“%@puzzleId=%d”,@”http://myhost.com/puzzle/object?“,谜语];
id action=(id)[FBGraphObject graphObject];
[action setObject:objectUrl forKey:@“拼图”];
[action setObject:timeString-forKey:@“time”];
[FBDialogs presentShareDialogWithOpenGraphAction:操作
actionType:@“shapeshuffle:solve”
previewPropertyName:@“拼图”
处理程序:^(FBAppCall*调用,NSDictionary*结果,NSError*错误){
如果(错误){
NSLog(@“错误:%@”,错误描述);
}否则{
NSLog(@“成功!”);
}
}];
我有同样的症状,但修复方法不同。Facebook SDK 3.5.*自共享对话框推出测试版以来
我有一个自定义的对象图故事:解->谜。这是我第一次与OG合作,所以这对熟悉OG的人来说似乎很明显,但它让我停滞不前,我想与大家分享
我在上浏览了共享对话框的示例,但是通过简单的复制粘贴,打开与图形相关的共享将无法工作。我想是因为OG对象与应用程序ID和URL主机等绑定。我设置了我的web主机,以便为我的对象提供OG数据,并将我的应用程序配置为允许该主机等
因此,我开始调整示例代码,以使用“opengraph/stories->Get code”弹出窗口中的参数。s
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:@"http://link/" forKey:@"**must_be_lowercase**"];
[FBDialogs presentShareDialogWithOpenGraphAction:action
actionType:@"xxxx"
previewPropertyName:@"**must_be_lowercase**"
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if(error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
}];