FaceBook PHP API SDK:突然参数 'link' 没有发布并且 /me/feed 不工作
FaceBook PHP API SDK: suddenly the argument 'link' is not published and /me/feed is not working
我完成了这个脚本,直到今天早上都运行良好,当启动它时,突然我注意到数组 $linkData
的参数 "link"
不再发布,(没有返回错误)而 "message"
已发布。
我还注意到,如果我将 /me/feed
放入对象 $fb->post
中,它不起作用(请参阅注释行)。没有返回错误。
虽然,如果我放一个组的代码(你看到的代码是我创建的测试脚本的测试组),参数"message"
被发布(而不是"link"
)
范围是:
user_managed_groups,
user_events,
user_friends,
user_posts,
publish_actions,
user_actions.music,
user_actions.video,
public_profile
link 指的是 link 为其编写的应用程序。 www.example.com
URL,是为这个例子写在这里的。在实际代码中,我使用应用程序站点的 URL(直到昨天工作正常)。
请输入代码:
<?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";
?>
编辑:
有什么我可以做的吗? id 是否取决于 App 设置?我更改了许多参数以找到解决方案,但我仍然遇到问题。
我确实验证了该块是由于 FB。
换句话说:可能出于安全原因(主要是反垃圾邮件),FB 会在短时间内阻止重复使用该功能。
我也尝试过在迭代中等待超过15秒,但是如果我一天使用它超过20-25次,FB会暂停所有需要的授权。
当时我post 线程,FB 只启用了文本的 post,并停用了 OpenGraph。
现在,它会阻止任何类型的发送,包括文本。
我完成了这个脚本,直到今天早上都运行良好,当启动它时,突然我注意到数组 $linkData
的参数 "link"
不再发布,(没有返回错误)而 "message"
已发布。
我还注意到,如果我将 /me/feed
放入对象 $fb->post
中,它不起作用(请参阅注释行)。没有返回错误。
虽然,如果我放一个组的代码(你看到的代码是我创建的测试脚本的测试组),参数"message"
被发布(而不是"link"
)
范围是:
user_managed_groups,
user_events,
user_friends,
user_posts,
publish_actions,
user_actions.music,
user_actions.video,
public_profile
link 指的是 link 为其编写的应用程序。 www.example.com
URL,是为这个例子写在这里的。在实际代码中,我使用应用程序站点的 URL(直到昨天工作正常)。
请输入代码:
<?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";
?>
编辑: 有什么我可以做的吗? id 是否取决于 App 设置?我更改了许多参数以找到解决方案,但我仍然遇到问题。
我确实验证了该块是由于 FB。 换句话说:可能出于安全原因(主要是反垃圾邮件),FB 会在短时间内阻止重复使用该功能。
我也尝试过在迭代中等待超过15秒,但是如果我一天使用它超过20-25次,FB会暂停所有需要的授权。
当时我post 线程,FB 只启用了文本的 post,并停用了 OpenGraph。
现在,它会阻止任何类型的发送,包括文本。