5

我正在为 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" /> 
4

4 回答 4

3

您不会从 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

于 2012-03-05T22:31:06.683 回答
0

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

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

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

于 2013-09-10T22:08:55.357 回答
0

您不能直接发布歌曲,您需要将歌曲托管在您自己的服务器(或 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 参数,当用户点击时,该参数会将用户带到网页。

于 2013-09-13T15:35:57.430 回答
0

据我了解(我希望我/希望我错了),您不能直接从 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 分钟内启动并运行)。下周我会弄乱它,看看是不是这样。:)

于 2012-09-14T07:23:17.493 回答