首先,有人能确认开放图对象类型形成了一个层次结构吗。我的意思是,每个movie
都是video
吗?每个video
都是object
吗?
我问的原因是like
操作类型只支持在应用程序面板中定义object
对象类型,所以如果我将对象定义为movie
类型,我会喜欢那个对象吗?根据我从文件中收集到的信息,确实应该是这样,但任何地方都没有明确说明。
我偶然发现了这一点,因为我在代表用户点赞URL时遇到了一个错误。点赞对象实例的og:type
定义为movie
。返回的错误为:
{"error":{"message":"(#100) Like actions are not yet supported against objects of this type.","type":"OAuthException","code":100}}
我尝试了几种方法,得到了非常令人困惑的结果:
- 我尝试将
og:type
参数更改为object
。我也犯了同样的错误 - 我尝试将
og:type
参数更改为website
。我也犯了同样的错误 - 我尝试将
og:type
参数更改为video
。我也犯了同样的错误 - 我尝试将作为对象传递的URL中的id查询参数更改为like。这导致我在服务器上的web应用程序找不到id引用的对象,从而无法呈现任何元标记。根据调试器,类型被隐式地确定为"网站"。从某种意义上说,这是有效的,因为我获得了操作实例的id,并且再次尝试相同的请求会抛出连接已经存在的错误。然而,无论是在新闻订阅源中,还是在用户档案中的点赞中,都没有显示任何内容。我可以正常删除连接
- 我尝试提供一个DNS无法解析的URL。调试器说它无法抓取任何信息。否则,情况与情况4相同
关于我的设置的更多信息:
- 该应用程序被配置为发布
Like
操作类型以及Object
和Video
对象类型 - 我没有定义画布URL,因为我的应用程序是在其他地方自行托管的,不需要facebook页面
Like
操作类型尚未提交审批,但我正在使用一个用户的有效访问令牌执行请求,该用户具有在我的应用程序中执行未提交操作类型的角色- 访问令牌是长期的,通过交换用户通过客户端身份验证流进行身份验证时接收到的短期访问令牌来获得
- 在定义了已发布的操作类型和对象类型后,用户已通过身份验证
- 所有的测试都是在我的机器上的Open Graph Explorer和Fiddler中执行的,参数(
object
和access_token
)是urlended的 - 如果使用类似的社交插件,一切都会按预期进行
[可能是这个问题的重复]
类型website
可以。
尝试执行类似按钮迁移,请参阅该文档中的"准备迁移"。
您可以检查website
是否需要迁移,方法是检查它是否具有website
(对象)的旧式"管理页面",方法是查看您是否是与og:site-name
或og:title
元标记同名的FB页面的管理员。如果你是一个名为与你的对象相同的FB页面的管理员,那么使用Open Graph(即/me/og.likes
)需要like Button Migration。