Facebook 打开图形调用生成OAuth异常

Facebook 打开图形调用生成OAuth异常,facebook,facebook-graph-api,oauth,facebook-opengraph,Facebook,Facebook Graph Api,Oauth,Facebook Opengraph,我遇到了一些问题,无法使开放图实现正常工作 据我所知,我有正确的元标记。当我将URL粘贴到Open Graph调试器中时,它返回定义了正确的信息(标题、描述、图像等),并且没有错误 我有Facebook PHP SDK的3.1.1版 我已经为我的开发应用程序启用了Open Graph,并且定义了一个操作(读取)和一个对象(文章) 所讨论的实现是一个网站,而不是facebook应用程序。在facebook上,该应用的“类别”是“其他”。我在另一个线程中遵循了一些建议,并将其更改为“游戏”,但它不起

我遇到了一些问题,无法使开放图实现正常工作

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

我有Facebook PHP SDK的3.1.1版

我已经为我的开发应用程序启用了Open Graph,并且定义了一个操作(
读取
)和一个对象(
文章

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

我通过facebook验证我的web应用程序用户,并收到一个代码,然后用它换取一个相当标准的
access\u令牌。我请求以下权限:

  • publish\u流
  • publish\u操作
  • 离线访问
然而,当我试图调用发布操作时,我收到一个OAutheException,并且没有真正的调试方法

有些奇怪之处:

  • graph API似乎不喜欢文档中指定的URL格式:
    me/[app\u namespace]:[action\u type]
    。在我的例子中,这将是
    me/”。FB_应用程序_命名空间。“:阅读
    ,其中FB_APP_名称空间在前面定义为facebook应用程序设置中定义的名称空间。API和Graph API Explorer都会抛出一个错误,指出它不理解给定的操作。它似乎试图将名称空间作为操作来读取
  • 如果我从url中删除名称空间,它会报告传入的操作与url中定义的
    og:type
    不匹配,因为url中的
    og:type
    包含我删除的相同名称空间
  • 如果我从meta标记中删除该名称空间,然后重试,我会得到一个无法调试的泛型OAuthException
  • 当我查看facebook应用程序中提供的代码示例时,操作似乎是
    news.reads
    ,而不是
    read
  • 如果我使用该操作,graph API将返回一个错误,指出我的ID未经授权,无法使用open graph,因为它不是我的应用程序的管理员、开发人员或测试人员。不幸的是,我是应用程序的创建者,这意味着要么graph API在撒谎,要么我在对自己撒谎

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

显然,如果您的应用程序/操作未提交,facebook默认的
read
调用将不可用


我最终创建了自己的
read
操作,第一次尝试就成功了。想想看。

显然,如果您的应用程序/操作未提交,facebook的默认
read
调用将不可用


我最终创建了自己的
read
操作,第一次尝试就成功了。如图所示。

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

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

请参阅:

有关帖子url稍有不同的预定义操作,您必须使用以下内容:

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

请参阅:

我没有处理Facebook SDK,但是,您是否使用
urlencode
正确地转义url,因此
更改为
%3A
?好问题-我将使用Graph API Explorer检查并返回给您,我在
https://graph.facebook.com/{NAMESPACE}:读取
,并作为
文章
传入URL。API返回:
(#803)您请求的一些别名不存在:{NAMESPACE}:read
我的错误,我错过了
/me
。它现在返回
未知路径组件:/{NAMESPACE}:read
,code 2500I没有处理Facebook SDK,但是,您是否使用
urlencode
正确地转义url,所以
更改为
%3A
?好问题-我将使用Graph API Explorer检查并回复您,我在
https://graph.facebook.com/{NAMESPACE}:读取
,并作为
文章
传入URL。API返回:
(#803)您请求的一些别名不存在:{NAMESPACE}:read
我的错误,我错过了
/me
。现在它返回
未知路径组件:/{NAMESPACE}:read
,代码2500