php - 发布到时间轴未正确抓取

标签 php facebook facebook-graph-api facebook-php-sdk

我正在使用 PHP SDK 通过 facebook::api 方法发布到登录用户时间线。我很确定我过去让它工作,但现在它似乎失败并返回以下错误:

OAuthException: (#3502) Object at URL http://example.com/ has og:type of 'website'. The property 'event' requires an object of og:type 'example:event'.

我已将 URL 放入 Facebook 调试器工具中,并且返回正常。我还使用了 Graph API 资源管理器来测试 POST 请求,这很有效。唯一没有的地方是我的 PHP 脚本。

我知道我不是唯一遇到这种情况的人,但似乎其他人都在使用 Javascript SDK,因此该解决方案与我无关。

我也曾尝试在我的请求中设置 scrape=true 但这没有任何区别。

我使用的代码是:

try{
    // Post the reply to the Facebook users wall
    $this->facebook_get_attendance['action_id'] = $this->facebook->api(
        "/me/example:reply?event=".urlencode("http://www.example.com/facebook-event/$this->area_rel/$this->facebook_event_reply_id")."&scrape=true&access_token={$this->facebook_user_details['access_token']}",
        "POST"
    );
    $this->facebook_get_attendance['action_id'] = $this->facebook_get_attendance['action_id']['id'];
}catch(FacebookApiException $e){
    error_log($e);
    $this->facebook_get_attendance['action_id'] = NULL;
}

知道为什么会这样吗?

传递的 URL 是:

/me/example:reply?event=http%3A%2F%2Fwww.example.com%2Ffacebook-event%2Fbath%2F612&access_token=ACCESS_TOKEN

最佳答案

基于以往经验的最可能的解释:

  • 您在事件页面上有一个 og:url 标签,它将 facebook 重定向到其他没有事件 OG 标签的地方
  • 您的站点向爬虫返回的内容与它返回给普通用户的内容不同(例如站点是否需要登录)- 使用手动请求进行调试:curl -i -H 'Accept: */* ' -H '范围:字节=0-40960' -H '连接:关闭' -A 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)' $URL_GOES_HERE<

关于php - 发布到时间轴未正确抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354596/

相关文章:

php - 如何从 WordPress 插件中的函数下载 CSV 文件?

php - php bindParam() 是否加速批量插入?

javascript - 用户无法直接分享到他们的 Facebook 页面,只能分享到他们的个人资料

php 从 mySQL 数据库中检索数据到表单中

javascript - 通过 jquery.get() 将 php 数组传递给脚本

facebook - 除了使用硬编码到我的代码中的长期页面访问 token 之外,还有另一种自动发布到我自己的 Facebook 页面的方法吗?

android - 如何使用反弹API平滑移动聊天头气泡

ios - 我怎样才能在 Ios sdk 的 facebook 上获得 friend 生日和用户生日

facebook - 代表用户在用户墙上发帖

facebook - 如何在 Android 中获取 Facebook 好友年龄