【问题标题】:Creating an FB Open Graph Object via iPhone SDK通过 iPhone SDK 创建 FB Open Graph 对象
【发布时间】:2012-03-22 12:24:16
【问题描述】:

我正在为 iPhone 开发音乐播放器,我希望用户能够将歌曲发布到他们的时间线。我有 Facebook Connect 工作,我已经在 Facebook 注册了 Open Graph 对象和操作,但我不知道如何从 iOS 创建/发布对象和操作。

Facebook 为我提供了以下代码,但我不知道在哪里将其用于他们的 iOS SDK。

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# MYAPPNAME: http://ogp.me/ns/fb/MYAPPNAME#">
<meta property="fb:app_id"      content="xxxxxxxxxxxxxxx" /> 
<meta property="og:type"        content="MYAPPNAME:song" /> 
<meta property="og:url"         content="Put Your Own URL Here" /> 
<meta property="og:title"       content="Some Arbitrary String" /> 
<meta property="og:description" content="Some Arbitrary String" /> 
<meta property="og:image"       content="http://ogp.me/logo.png" /> 

【问题讨论】:

    标签: ios facebook facebook-opengraph facebook-ios-sdk facebook-timeline


    【解决方案1】:

    您不会从 iOS SDK 发布对象 - 您通过 SDK 发布操作并引用指向对象的 URL。

    你做了类似的事情:

    [[delegate facebook] requestWithGraphPath:@"me/YOUR_APP_NAMESPACE:YOUR_ACTION_NAME" andParams:[@"YOUR_OBJECT_URL" forKey:@"recipe"] andHttpMethod:@"POST" andDelegate:self];
    

    基本上,您使用标准 iOS Graph API 方法 POST 到 Graph API。

    这里有一个示例应用程序向您展示如何执行此操作:https://github.com/facebook/wishlist-mobile-sample

    【讨论】:

    【解决方案2】:

    据我了解(我希望我是/希望我错了),您不能直接从 iOS 5.x 本机应用程序发布到 Facebook 的 OpenGraph。您需要更复杂的技术堆栈。

    Simon Cross 和 Nick 解释的是,您需要一个 Web 服务器来接收您的 iOS 操作,然后您的 Web 服务器与 Facebook 通信。更重要的是,您的网络服务器(我相信)必须实际托管您的对象 - 例如。图片或歌曲 - 尽管有很棒的文件托管服务可以与 iOS 很好地交互(我一直在挖掘 Parse.com),但它们不为 Facebook 的 OpenGraph 提供本机/GUI 驱动的服务。 (我希望 Heroku 或 Parse 或其他人提供开箱即用的工作和扩展功能。)

    因此,基本上,您必须使用自己的网络服务器才能使用 OpenGraph 从本机应用发布到 FB。

    注意:在 iOS 6 中,FB 集成看起来与 iOS 5 中的 Twitter 集成一样流畅和简单(即您将在 30 分钟内启动并运行)。下周我会弄乱它,看看是不是这样。 :)

    【讨论】:

      【解决方案3】:

      就像 Simon 说的那样,您不发布“OG 对象”,而是创建/注册它们(连同您在 FB 应用仪表板中的“操作”)。然后从您的应用程序中使用 Facebook 对象 API 发布“操作”。您的“操作”应包含对您创建的自定义 OG 对象实例的引用(通过 URL)。此自定义 OG 对象将具有唯一数据(例如标题、数据等)。

      关键在于,那些“自定义”OG 对象必须、必须作为托管在后端服务器上的独特网页存在。糟透了!!!因此,您要么需要编写后端服务器代码来帮助您为动态生成的网页(OG 对象)提供服务器,要么您需要为您提供服务(BaaS - 后端即服务)。

      虽然 FB 说“Parse”会处理这个问题并且他们是合作伙伴,但我在 Parse.com 上找不到任何信息来执行此操作....事实上,我发现支持建议是相反。 Parse 似乎非常适合应用程序的用户管理和云数据存储。但是,我会推荐“Kinvey”,因为它们确实支持 OG 对象创建和存储(对于流量少的情况下免费)并且易于设置和集成。

      【讨论】:

        【解决方案4】:

        您不能直接发布歌曲,您需要将歌曲托管在您自己的服务器(或 Soundcloud 等社交网络)上,然后将这些对象post 发送到 Facebook。您可以使用 SDK 中的最新更改动态创建对象:

        NSMutableDictionary<FBOpenGraphObject> *object =
                    [FBGraphObject openGraphObjectForPostWithType:@"yourns:yourtype"
                                                            title:title
                                                            image:imageDataIfAny
                                                              url:@"a URL that can be clicked"
                                                      description:descriptionIfAny];
                    //attach custom data
                    object[@"data"] = @{
                                       //any custom data of your object type comes here
                                        };
        

        您不再需要将 OG 标记显式放置到网页中,但您仍然需要一个 URL 参数,以便在用户点击时将其带到网页。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-11
          • 2015-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多