3

谁能告诉我,在将动作发布到时间线时,Facebook 的开放图形 API 的可靠性如何?

背景

发布代码

[self.facebook requestWithGraphPath: @"me/MY_APP:write" andParams: [NSMutableDictionary dictionaryWithObject: @"http://blogpost.url/here" forKey: @"blogpost"] andHttpMethod: @"POST" andDelegate: self];

以下是符合 OG 要求的博文页头片段:

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# MY_APP: http://ogp.me/ns/fb/MY_APP#">
      <title>Blogpost page</title>
      <meta property="og:title" content="Blogpost page" />
      <meta property="og:image" content="http://url.to/the/image.png" />
      <meta property="fb:app_id" content="123456790123456789" />
      <meta property="og:url" content="http://blogpost.url/here" />
      <meta property="og:type" content="MY_APP:blogpost" />
</head>

测试环境

  • 在模拟器和实际设备中测试
  • 对于每次请求尝试,我都会启动一个新的应用程序以排除任何应用程序的网络问题。
  • 每次,我的请求都是完全相同的,具有相同的链接博客网址。
  • 我正在使用可用的最新 iOS SDK
  • 我的网络非常可靠
  • 博客文章页面可访问并正确包含 opengraph 设置的所有要求

Facebook API 的错误响应每次都不同:

  • OAuthException:发生意外错误。请稍后重试您的请求。
  • 例外:无法从 URL 检索数据。
  • 例外:“MY_APP:blogpost”类型的 URL“http://blogpost.url/here”处的对象无效,因为指定的应用程序 ID“XXXXXXXX”不允许使用域“blogpost.url”。您可以在https://developers.facebook.com/apps/XXXXXXX验证您配置的“应用程序域” 。

(注意:很明显, blogpost.url 被替换为真实的现有页面)

请求成功率在 30% 左右。

Facebook端是否有任何问题?目前,我不想以 Facebook 共享可靠性的当前形式发布我的应用程序。

感谢您提供任何反馈、帮助或建议。

4

1 回答 1

2

经过一些进一步的研究和耐心,现在一切正常。

以下错误只是在 24 小时内停止出现,我们这边没有任何代码更改(我想 FB 确实存在问题):

  • OAuthException:发生意外错误。请稍后重试您的请求。
  • 例外:“MY_APP:blogpost”类型的 URL“http://blogpost.url/here”处的对象无效,因为指定的应用程序 ID“XXXXXXXX”不允许使用域“blogpost.url”。您可以在https://developers.facebook.com/apps/XXXXXXX验证您配置的“应用程序域” 。

以下异常是由我们的操作对象的 url 引起的 - 由于 url 在“FB 发布操作”之前一秒钟就生效了,因此该 URL 并未真正在我们的 Web 前端的所有实例中发布:

  • 例外:无法从 URL 检索数据。

希望这对将来的某人有所帮助。

于 2012-04-16T11:07:34.193 回答