【问题标题】:Can an in-app object only be posted through an opengraph action?应用内对象只能通过 opengraph 操作发布吗?
【发布时间】:2012-06-19 19:43:02
【问题描述】:

我在 facebook 应用程序中有一个页面,它是一个 opengraph 对象,当我从我的应用程序向 facebook 发布对该对象的自定义操作时,它会正确发布,但是当我使用 facebook 社交插件时,比如 like 和 like that object 它不是作为该对象发布的,而是我的 facebook 应用程序的对象发布在时间轴上...所以我的问题是只能通过 opengraph 操作发布应用内对象吗?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-like facebook-opengraph


    【解决方案1】:

    不,一旦 Facebook linter 抓取您的页面以获取数据,将创建新的 OpenGraph 对象或更新现有对象的数据,这在几种情况下会发生:

    • 已发布引用对象的 OpenGraph 操作
    • 为特定网址点击了“赞”按钮
    • 链接到您在 Facebook 上共享的页面(以直接方式或通过任何 dialogs 使用 link 等)。

    您的 Like 按钮可能不是链接到您的真实应用程序 URL,而是链接到 Facebook 中的 URL,从而导致 Facebook 在 Like 按钮单击和 OpenGraph 操作发布时解析不同的页面。

    我假设您的点赞按钮指向应用程序选项卡画布或应用程序页面,因为 Facebook 正确解析了指向常规应用程序画布的链接。

    更新:
    似乎 OpenGraph 标签的问题与您的应用程序为您提供的 URL 返回 404Not Found 状态代码)并且仅返回 HTTP(但不是 HTTPS)请求的数据这一事实有关。如果返回错误码,缓存数据将被保留,直到返回正确的状态码才会更新。

    更新 2:
    当您提供了真实的 URL 时,很明显您获得了应用程序的详细信息,而不是实际页面,因为所有未经授权的用户都进行了重定向,这导致 Facebook linter 无法丰富真实的 OpenGraph 数据。

    顺便说一句,您应该知道每个 OpenGraph 对象都必须有可公开访问的 URL

    【讨论】:

    • 是的,它确实指向例如 url apps.facebook.com/appnamespace/eg.php?id=5 这是否意味着 facebook 不会获取其对象详细信息.. 因为我们通过 lint 传递它,它会获取我的应用程序的详细信息,而不是提到的那些在这个页面上。
    • @user1064950,您的应用似乎导致该 URL 的 404(至少对我和 Facebook 而言),请使用 debug tool 进行检查。我已经更新了我的答案以提供更多详细信息
    • @JScripter:这不是我的实际网址,我只是作为示例写的。
    • @user1064950,Facebook 通常会遵循 Canvas URL,以防您在 Facebook 中分享/喜欢指向 Application Canvas 的链接(但 Page Tab 应用程序并非如此),只需确保调试工具获取您使用的 URL 的正确数据,并确保它与您在操作中引用的 OpenGraph 对象中的 URL 相同
    • 这是调试器工具没有获取正确数据的问题,它获取的是我的应用程序的对象,而不是链接指向的我的应用程序内部的对象。
    猜你喜欢
    • 2012-08-08
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多