1

我在使 Open Graph 实现正常工作时遇到了一些问题。

据我所知,我有正确的元标记。当我将 URL 粘贴到 Open Graph Debugger 中时,它会返回定义的正确信息(标题、描述、图像等),并且没有错误。

我有 3.1.1 版的 Facebook PHP SDK。

我为我的开发应用程序启用了 Open Graph,并且定义了一个操作 ( read) 和一个对象 ( article)。

有问题的实现是一个网站,而不是一个 facebook 应用程序。在 facebook 上,应用程序的“类别”是“其他”。我在另一个线程中遵循了一些建议,并将其更改为“游戏”,但不起作用,所以我将其更改回来。

我使用 facebook 验证我的网络应用程序用户并收到一个代码,然后我用它换取一个access_token非常标准的代码。我要求以下权限:

  • publish_stream
  • publish_actions
  • offline_access

但是,当我尝试调用发布操作时,我收到 OAuthException,并且没有真正的调试方法。

一些怪事:

  • 图 API 似乎不喜欢文档中指定的 URL 格式:me/[app_namespace]:[action_type]. 在我的情况下,这将是me/' . FB_APP_NAMESPACE . ':readFB_APP_NAMESPACE 之前定义为 facebook 应用程序设置中定义的命名空间。API 和 Graph API Explorer 都会抛出一个错误,指出它不理解给定的操作。它似乎试图将命名空间读取为操作。
  • og:type如果我从 url 中删除命名空间,它会报告传入的操作与 url 中定义的不匹配,因为og:typeurl 中包含我删除的相同命名空间。
  • 如果我从元标记中删除命名空间,然后再试一次,我会得到一个无法调试的通用 OAuthException。
  • 当我查看我的 facebook 应用程序中提供的代码示例时,该操作似乎news.reads不仅仅是read.
  • 如果我使用该操作,图形 API 会返回一个错误,指出我的 ID 未经授权无法使用打开的图形,因为它不是我的应用程序的管理员、开发人员或测试人员。不幸的是,我是应用程序的创建者,这意味着要么图形 API 在撒谎,要么我在对自己撒谎!

我认为解决方案很简单——也许我忘记了什么,或者选择了某个类别不正确。无论哪种方式,至少可以说,这有点令人沮丧!

4

2 回答 2

1

read显然,如果您的应用程序/操作未提交,则无法使用facebook 的默认调用。

我最终创建了自己的read动作,并且在第一次尝试时就奏效了。去搞清楚。

于 2012-04-28T19:28:48.177 回答
0

对于预定义的操作,post url 略有不同,您必须使用如下内容:

POST https://graph.facebook.com/me/news.reads?article=[article object URL]

请参阅:https ://developers.facebook.com/docs/opengraph/actions/builtin/#read

于 2012-04-30T11:01:29.410 回答