繁体   English   中英

iOS-通过应用程序的Facebook开放图共享成功,但是看起来不像我希望在Facebook上那样

[英]iOS - Facebook open graph sharing via app is successful, but does not look the way I want it to on Facebook

我有一个用于拍照的iPhone应用程序。 我刚刚将Facebook共享功能添加到此应用程序中。

我在这里浏览了整个页面: https//developers.facebook.com/docs/ios/open-graph

我按照所有说明进行操作,然后将代码复制并粘贴到xcode中。 我唯一没有做的就是页面最底部的“深度链接”部分,但是现在这并不重要。

完成所有这些操作后,我的应用程序可以成功地将图像共享到Facebook。 但是,它并没有按照我需要的方式共享。

当我转到Facebook页面查看共享时,您甚至都不会知道它的存在。 我必须将页面向下滚动几乎一半,然后才在左下角。

这是一个截图,显示了在台式机上查看时共享在我的Facebook页面上的位置:

在此处输入图片说明

这是在iPhone上使用Facebook App时共享的外观(我涂黑了我的名字):

在此处输入图片说明

这些看起来都很糟糕。 这是我要完成的2个示例。

当我将其共享到页面并在台式机上查看时,来自此应用程序的名为“ Frontback”的照片如下所示:

在此处输入图片说明

而且在iPhone的Facebook App上看起来也一样。

我可以说的唯一区别是,我的共享的URL中带有“ / activity /”,而Frontback应用程序共享的Facebook URL中具有“ photo.php”。

我不知道如何获取应用程序的共享,使其看起来像来自Frontback应用程序的共享。

非常感谢您的任何帮助。

您创建的帖子对我来说很有意义。 开放式供稿总是比普通供稿更漂亮,更有意义。

您看到的Frontback帖子是简单的照片上传,而不是供稿。 我的意思是,这完全取决于您的要求,以及您的应用程序真正想要做什么。

  • 如果只想通过诸如Frontback之类的应用程序显示一些照片,则可以避免使用API \\POST /photos打开图形并发布\\POST /photos

  • 但是,如果您想提供一个可以将用户重定向到应用程序的链接,则应使用当前使用的内容。

另一件事,当你说-

当我转到Facebook页面查看共享时,您甚至都不会知道它的存在。 我必须将页面向下滚动几乎一半,然后才在左下角。

这就是开放式图表的优点,它可以将应用程序在时间轴上的所有活动结合在一起,而不必不必要地进行状态更新和充斥您的时间轴。 故事会显示在您/您的朋友墙和置顶栏中的顶部。 您还可以通过点击活动日志故事中的时间来查看实际故事-

(活动日志)

在此处输入图片说明

(真实故事)

在此处输入图片说明

- (void)requestPermissionAndPost {
    [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObjects:@"publish_actions", @"publish_checkins",nil]
                                          defaultAudience:FBSessionDefaultAudienceEveryone
                                        completionHandler:^(FBSession *session, NSError *error) {
                                            if (!error) {
                                                // Now have the permission
                                                [self postOpenGraphAction];
                                            } else {
                                                // Facebook SDK * error handling *
                                                // if the operation is not user cancelled
                                                if (error.fberrorCategory != FBErrorCategoryUserCancelled) {
                                                    [self presentAlertForError:error];
                                                }
                                            }
                                        }];
}
- (void)postOpenGraphAction
{
    FBRequestConnection *newConnection = [[FBRequestConnection alloc] init];
    FBRequestHandler handler =
    ^(FBRequestConnection *connection, id result, NSError *error) {
        // output the results of the request
        [self requestCompleted:connection forFbID:@"me" result:result error:error];
    };

    UIImage *img = imageView.image;
    NSString *message = [NSString stringWithFormat:@"%@ %@ #DealsHype",msg.text,hashtagFromStore];
    FBRequest *request=[[FBRequest alloc] initWithSession:FBSession.activeSession graphPath:@"me/photos" parameters:[NSDictionary dictionaryWithObjectsAndKeys:UIImageJPEGRepresentation(img, 0.7),@"source",message,@"message",@"{'value':'EVERYONE'}",@"privacy", nil] HTTPMethod:@"POST"];


    [newConnection addRequest:request completionHandler:handler];
    [self.requestConnection cancel];
     self.requestConnection = newConnection;
    [newConnection start];
}

如果您想上传像Frontback这样的大图片,这是上传带有一些消息的图片的好方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM