gpt4 book ai didi

Facebook API : How to publish to Page feed while user is offline without offline_access permission

转载 作者:行者123 更新时间:2023-11-30 05:16:03 25 4
gpt4 key购买 nike

使用 Facebook 的 Graph API,我已经成功地在用户离线时发布到用户的 feed,只有 publish_stream 权限。我不需要 offline_access 权限。我在这里解释了我是如何做到的:Facebook Stream Publish while offline

我在用户离线时发布到页面时不太成功。这是我的场景:

用户 U 是页面 P 的管理员。P 授权并安装了我的应用程序。 U 授权我的应用并授予我以下扩展权限:

  • 发布流
  • 管理页面

一旦用户离线,如果我尝试使用与发布到用户流(没有 offline_access 权限)相同的技术来发布到页面,我会收到“用户尚未授权应用程序执行此操作行动”。技巧如下:

1) 获取我应用的 access_token

2) 使用我的应用程序的 access_token 发布到页面 P 的提要:发布 https://graph.facebook.com/ {page_id}/提要

如果我在第 2 步中使用 {user_id} 而不是 {page_id},那么它会毫无问题地发布到用户的供稿。但是,我想发布到页面的提要。是否有可能做到这一点?或者我是否需要用户的 offline_access 权限才能执行此操作?

谢谢,强尼

最佳答案

完整流程 - 四页示例(示例更易于编辑和理解)

所以配置只有基本的应用信息...

当您加载 index.php - 它重定向到 facebook 以获得页面授权..(可能已经有了这个..但涵盖了所有基础)

Facebook 然后重定向回 redirecturl (backfromfb.php)...

Facebook 将访问 token 作为散列而不是 get 变量返回,因此此页面使用散列作为变量进行刷新...

然后它加载 PageUpdate.php,它处理应用程序/管理 token 的循环并为您要发布到的页面找到正确的 token 。

然后它构建帖子并提交..

听起来您对其中的大部分内容都有所了解...因此希望这对您有所帮助。

config.php

<?php
$config = array(
'appId' => 'YOUR APP ID',
'secret' => 'YOUR APP SECRET',
'cookie' => true;
);

$baseurl = 'http://yoursite.com/';
$returnpage = 'backfromfb.php';

require_once('library/facebook.php');

?>

index.php

<?php require_once('config.php'); ?>

<html><head><title>Redirecting for auth</title></head><body><script type="text/javascript">
window.location.href = 'https://www.facebook.com/dialog/oauth?client_id=<?php echo $config['appId']; ?>&redirect_uri=<?php echo $baseurl . $returnpage; ?>&scope=manage_pages&response_type=token';
</script></body></html>

backfromfb.php

<?php
require_once('config.php');
// this page just passes the access token from the hash to a GET arg...
if (!isset($_GET['access_token'])) {
?>
<html><head><title>Redirecting</title></head><body><script type="text/javascript">
accessToken = window.location.hash.substring(1);
window.location.href = '<?php echo $baseurl . $returnpage; ?>?' + accessToken;
</script></body></html>
<?php
} else {
require_once('PageUpdate.php');
} ?>

PageUpdate.php

<?php
require_once('config.php');

$pageID = "123456 WHatever you page id is";

$AppToken = array(
'access_token' => $_REQUEST['acess_token']
);

$fb = new Facebook($config);

// Load APP page access rights for user via AppToken
$pageAdmin = $fb->api('/me/accounts', 'GET', $AppToken);

// Find the page access token
foreach ($pageAdmin['data'] as $data) {
if ($data['id'] == $pageID) {
$pageToken['access_token'] = $data['access_token'];
continue;
}
}

// compile the post
$WallPost = array(
'message' => 'Test post from my app!'
); // you can also use 'picture', 'link', 'name', 'caption', 'description', 'source'....
//http://developers.facebook.com/docs/reference/api/


// post to wall
$response = $fb->api($pageID . '/feed','POST',$WallPost);

if($response) {

echo 'Success!';
echo '<pre>' . $response . '</pre>';

} else echo "failed";


?>

关于 Facebook API : How to publish to Page feed while user is offline without offline_access permission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com