Facebook "view on ..." 自定义故事中的文字未显示
Facebook "view on ..." text on custom story is not showing
我正在应用中实现深度 linking。
按照我找到的每个教程进行操作。
测试了所有可能的设置。
结果是:如果我 post 一个带有 "user_generated" 的故事:"true",Facebook post 应该是大照片,但是没有link 如 "view on Instagram"、"view on Foursqare" 等。所以人们无法到达实际对象。
Facebook 设置:
显示名称、命名空间、应用程序域、站点 URL、捆绑包 ID、iPhone 商店 ID、深度链接(打开)、本机或桌面应用程序?(打开),您的应用程序秘密是否已嵌入?(关闭)
应用限制 - 无限制
我已经设置了开放图操作和对象,它们在没有 "user_generated" 的情况下工作:"true"。
我正在发送我的代码(此示例中的项目名称空间已被替换):
-(void) shareOnFacebook: (NSString *) image {
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
object[@"type"] = @"projectnamespace:photo";
object[@"title"] = _postText.text;
object[@"url"] = responseJson[@"share"];
object[@"og:url"] = responseJson[@"share"];
object[@"al:web"] = responseJson[@"share"];
object[@"web"] = responseJson[@"share"];
if (image) {
NSLog(@"Photo Link: %@", image);
object[@"image"] = @[@{@"url": image, @"user_generated" : @"true" }];
}
// Post custom object
[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(!error) {
NSString *objectId = [result objectForKey:@"id"];
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:objectId forKey:@"photo"];
[action setObject: @"true" forKey: @"fb:explicitly_shared"];
if (image)
[action setImage:@[@{@"url": image, @"user_generated" : @"true" }]];
// create action referencing user owned object
[FBRequestConnection startForPostWithGraphPath:@"me/projectnamespace:add" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(!error) {
NSString *actionId = [result objectForKey:@"id"];
NSLog(@"Posted story to facebook: %@", actionId);
[self shareAndDismiss: nil];
} else {
// An error occurred
NSLog(@"Encountered an error posting action to Open Graph: %@", error);
[self shareAndDismiss: nil];
}
}];
} else {
// An error occurred
NSLog(@"Error posting the Open Graph object to the Object API: %@", error);
[self shareAndDismiss: nil];
}
}];
}
据我所知,在 Facebook 上分享的 Foursquare 帖子中没有这样的 "View on Foursquare" link。
据我所知,唯一的 "View on..." link 是针对 Instagram 的。然而,Instagram 是一家 Facebook 公司。 Facebook 和 Instagram 团队共同努力打造他们自己的照片共享体验,这意味着他们不像我们一样受到 API 的限制。
恐怕 "View on Instagram" 是仅提供给 Instagram 应用程序的一项特殊功能,而 Facebook API 不会将此功能提供给其他应用程序。
我正在应用中实现深度 linking。 按照我找到的每个教程进行操作。 测试了所有可能的设置。
结果是:如果我 post 一个带有 "user_generated" 的故事:"true",Facebook post 应该是大照片,但是没有link 如 "view on Instagram"、"view on Foursqare" 等。所以人们无法到达实际对象。
Facebook 设置: 显示名称、命名空间、应用程序域、站点 URL、捆绑包 ID、iPhone 商店 ID、深度链接(打开)、本机或桌面应用程序?(打开),您的应用程序秘密是否已嵌入?(关闭)
应用限制 - 无限制
我已经设置了开放图操作和对象,它们在没有 "user_generated" 的情况下工作:"true"。
我正在发送我的代码(此示例中的项目名称空间已被替换):
-(void) shareOnFacebook: (NSString *) image {
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
object[@"type"] = @"projectnamespace:photo";
object[@"title"] = _postText.text;
object[@"url"] = responseJson[@"share"];
object[@"og:url"] = responseJson[@"share"];
object[@"al:web"] = responseJson[@"share"];
object[@"web"] = responseJson[@"share"];
if (image) {
NSLog(@"Photo Link: %@", image);
object[@"image"] = @[@{@"url": image, @"user_generated" : @"true" }];
}
// Post custom object
[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(!error) {
NSString *objectId = [result objectForKey:@"id"];
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];
[action setObject:objectId forKey:@"photo"];
[action setObject: @"true" forKey: @"fb:explicitly_shared"];
if (image)
[action setImage:@[@{@"url": image, @"user_generated" : @"true" }]];
// create action referencing user owned object
[FBRequestConnection startForPostWithGraphPath:@"me/projectnamespace:add" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(!error) {
NSString *actionId = [result objectForKey:@"id"];
NSLog(@"Posted story to facebook: %@", actionId);
[self shareAndDismiss: nil];
} else {
// An error occurred
NSLog(@"Encountered an error posting action to Open Graph: %@", error);
[self shareAndDismiss: nil];
}
}];
} else {
// An error occurred
NSLog(@"Error posting the Open Graph object to the Object API: %@", error);
[self shareAndDismiss: nil];
}
}];
}
据我所知,在 Facebook 上分享的 Foursquare 帖子中没有这样的 "View on Foursquare" link。
据我所知,唯一的 "View on..." link 是针对 Instagram 的。然而,Instagram 是一家 Facebook 公司。 Facebook 和 Instagram 团队共同努力打造他们自己的照片共享体验,这意味着他们不像我们一样受到 API 的限制。
恐怕 "View on Instagram" 是仅提供给 Instagram 应用程序的一项特殊功能,而 Facebook API 不会将此功能提供给其他应用程序。