【发布时间】:2012-05-09 03:20:04
【问题描述】:
我在让 Open Graph 实现正常工作时遇到了一些问题。
据我所知,我有正确的元标记。当我将 URL 粘贴到 Open Graph Debugger 中时,它会返回定义的正确信息(标题、描述、图像等),并且没有错误。
我有 3.1.1 版的 Facebook PHP SDK。
我为我的开发应用启用了 Open Graph,并且定义了一个操作 (read) 和一个对象 (article)。
有问题的实现是一个网站,而不是 facebook 应用程序。在 facebook 上,应用程序的“类别”是“其他”。我在另一个帖子中遵循了一些建议,并将其更改为“游戏”,但不起作用,所以我将其更改回来。
我使用 facebook 验证我的网络应用程序用户并收到一个代码,然后我用它换取一个 access_token,非常标准。我要求以下权限:
publish_streampublish_actionsoffline_access
但是,当我尝试调用以发布操作时,我收到了 OAuthException,并且没有真正的调试方法。
一些奇怪的东西:
- 图形 API 似乎不喜欢文档中指定的 URL 格式:
me/[app_namespace]:[action_type]。在我的例子中,这将是me/' . FB_APP_NAMESPACE . ':read,其中 FB_APP_NAMESPACE 之前被定义为在 facebook 应用程序设置中定义的命名空间。 API 和 Graph API Explorer 都会抛出一个错误,指出它不理解给定的操作。它似乎试图将命名空间读取为操作。 - 如果我从 url 中删除命名空间,它会报告传入的操作与 url 中定义的
og:type不匹配,因为 url 中的og:type包含我删除的相同命名空间。 - 如果我从元标记中删除 that 命名空间,然后重试,我会得到一个无法调试的通用 OAuthException。
- 当我查看我的 facebook 应用程序中提供的代码示例时,操作似乎是
news.reads而不仅仅是read。 - 如果我使用该操作,图形 API 会返回一个错误,指出我的 ID 未经授权无法使用打开的图形,因为它不是我的应用程序的管理员、开发人员或测试人员。不幸的是,我是应用程序的创建者,这意味着要么图形 API 在撒谎,要么我在自欺欺人!
我认为解决方案很简单——也许我忘记了什么,或者选择了某个类别不正确。不管怎样,至少可以这么说,这有点令人沮丧!
【问题讨论】:
-
我还没有处理过 Facebook SDK 但是,您是否使用
urlencode正确转义了 url,所以:更改为%3A? -
好问题 - 我会检查并回复你
-
使用 Graph API Explorer,我向
https://graph.facebook.com/{NAMESPACE}:read发送了一个 POST,并将 URL 作为article传递。 API 返回:(#803) Some of the aliases you requested do not exist: {NAMESPACE}:read -
我错了,我错过了
/me。它现在返回Unknown path components: /{NAMESPACE}:read,代码 2500
标签: facebook facebook-graph-api oauth facebook-opengraph