FaceBook PHP API SDK: suddenly the argument 'link' is not published and /me/feed is not working

时间:2015-10-06 09:02:23

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

I completed this script, that was working fine till this morning, when launching it, suddenly I noticed that the argument "link" of the array $linkData, is not published any longer, (no error returned) while "message" is published.

I also noticed that if I put /me/feed into the object $fb->post, it doesn't work (see the commented line). No errors returned.

While, if I put the code of a group (the code you see is a test group I created to test the script), the argument "message" is published (not the "link")

The scopes are:

user_managed_groups,
user_events,
user_friends,
user_posts,
publish_actions,
user_actions.music,
user_actions.video,
public_profile

The link is referred to the link for which the application is written. the www.example.com URL, is written here for this example. In the real code, I use the URL of the site of the App (that till yesterday was working fine).

Please here the code:

<?php
session_start();

define(__APP_ID__, XXXXXXXXXXXXXXX);
define(__APP_SECRET__, 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY');
define(__APP_TOKEN__, 'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ');
define(__APP_ACCESS_TOKEN__, 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW');

require_once '../include/setup.php';
require_once $root_dir.'/include/Facebook/autoload.php';

// Creates the object
$fb = new Facebook\Facebook([
    'app_id' => __APP_ID__,
    'app_secret' => __APP_SECRET__,
    'default_graph_version' => 'v2.2',
]);

$linkData = [
    'link' => 'http://www.example.com',
    'message' => 'The link above, is not any longer published',
];

$group_id = "1041863359178529";

        try {

            //$response = $fb->post("/me/feed", $linkData, __APP_ACCESS_TOKEN__); // SUDDENLY it doesn't work any longer
            $response = $fb->post("/{$group_id}/feed", $linkData, __APP_ACCESS_TOKEN__);

            } catch  (Facebook\Exceptions\FacebookResponseException $e) {
                echo 'Graph returned an error: ' . $e->getMessage();
                exit;
            } catch (Facebook\Exceptions\FacebookSDKException $e) {
                echo 'Facebook SDK returned an error: ' . $e->getMessage();
                exit;
            }

        $graphNode = $response->getGraphNode();
        echo 'Posted with id: ' . $graphNode['id']."\r\n";

?>

EDIT: Is there anything I can do? Is id depending from the App settings? I changed many parameters to find a solution but I still have the issue.

1 个答案:

答案 0 :(得分:1)

我确实验证了该块,是由于FB。 换句话说:可能出于安全原因(主要是Anti-Spam),FB在短时间内重复使用该功能。

我确实尝试在迭代中等待超过15秒,但如果我在一天内使用它超过20-25次,则FB会暂停所有必需的授权。

当我发布帖子时,FB只启用了文本的帖子,并停用了OpenGraph。

现在,它会阻止任何类型的发送,包括文本。