0

我正在使用以下脚本发布 Facebook 页面墙的链接:

ini_set("zend.ze1_compatibility_mode", "off");
require_once('facebook-php-sdk/src/facebook.php');
$appId = 'XXXXXXXXXXXXXX';
$secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$facebook = new Facebook(array('appId' => $appId, 'secret' => $secret));
$access_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id='.$appId.'&client_secret='.$secret.'&grant_type=client_credentials');
$access_token = preg_replace('/^access_token=/', '', $access_token);
$attachment = array(
    'access_token' => $access_token,
    'message' => 'message text',
    'link' => 'http://www.domain.com/',
    'name' => utf8_encode('link title'),
    'description' => utf8_encode('link description'),
    'picture' => 'http://www.domain.com/images/picture.jpg'
);
$facebook->api('/XXXXXXXXXXXX/feed', 'POST', $attachment);

它工作得很好,但自 2 周以来,它开始出现以下错误,而绝对没有进行任何修改:

Fatal error:  Uncaught OAuthException: An unknown error has occurred.
thrown in /path/to/public_html/facebook-php-sdk/src/base_facebook.php on line 1033

通过一些原始调试,我发现如果我注释掉数组的link元素,$attachment问题就会消失。然而,它导致name在 Facebook 页面开始链接到图片文件,这绝对不是一个选项。

任何帮助将不胜感激。

更新:

我尝试通过 Graph API Explorer 执行此请求并得到相同的错误:

{
    "error": {
        "message": "An unknown error has occurred.", 
        "type": "OAuthException", 
        "code": 1
    }
}
4

1 回答 1

0

我遇到了同样的问题,一个简单的基于网络的程序偶尔会更新我客户的 facebook 页面,其中包含有关他的库存的状态更新。

据我所知,无论出于何种原因,此错误已被置于“无法修复”状态,并且相关功能已被弃用?

https://developers.facebook.com/bugs/397106947003500?browse=search_5013a59fc630a7b70100468

我不知道为什么 JUST THE LINK FUNCTIONALITY 会被弃用,我也不知道发布链接的新正确方法是什么,因为 Graph 文档仍然将“链接”列为正确的字段来执行此操作。任何人?

在上面的错误页面上,他提供了一个据称提供更多信息的链接,但该链接不起作用。我认为也许“.intern”部分不应该在那里,给了我这个网址......

https://developers.facebook.com/blog/post/2012/07/25/platform-updates--operation-developer-love/

...确实有效,但我没有看到与已弃用功能相关的任何信息,或者其他帮助我确定如何更改我的代码以发布链接的信息。也许对 Graph API 更了解的人可以提供帮助!

[我真的希望 Facebook 停止弃用东西;让它继续工作真的会造成任何伤害吗?他们称之为Operation Developer Love,但我怎么能喜欢无缘无故让我加班的东西呢?]

于 2012-09-12T16:07:44.767 回答