gpt4 book ai didi

php - Facebook publish_stream 代码以循环结束

转载 作者:可可西里 更新时间:2023-11-01 00:22:41 26 4
gpt4 key购买 nike

只要在应用程序的前一部分中,我有以下代码就可以正常工作,用户接受对 publish_stream 的应用程序请求。

# The facebook library
require_once("/var/www/facebook-php-sdk-master/src/facebook.php");

# Create facebook object
$config = array();
$config['appId'] = 'appId_here';
$config['secret'] = 'secret_here';
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);

$user_id = $facebook->getUser();

if ($user_id) {

try {

$user_profile = $facebook->api('/me','GET');

#check permissions
$api_call = array(
'method' => 'users.hasAppPermission',
'uid' => $user_id,
'ext_perm' => 'publish_stream'
);

#set to true if true...
$can_offline = $facebook -> api( $api_call );

#is it true?
if( $can_offline ) {

$post = array(
'message' => 'post_a_message'
);

$facebook->api('/' . $_GET["id"] . '/feed', 'POST', $post);

} else {

// can't post message - don't have permission

}

} catch (FacebookApiException $e) {

error_log($e);
exit;

}

} else {

error_log("user not logged in");
exit;

}

为了尝试解决这个问题,我尝试将以下代码插入到 else 语句 中,目前在上面的代码中只包含注释 //can't post message - don'没有权限

我试图插入到 else 中的代码是这样的:

$loginUrl = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
header("Location: ".$loginUrl);

只要用户同意允许我的应用publish_stream,它就可以工作。但是,如果用户不接受,我的应用程序将不断要求用户接受 publish_stream。如果用户决定不接受,我该如何阻止该循环发生?

最佳答案

据我所知,$facebook -> getLoginUrl 可以采用参数 cancel_url,其中包含链接,如果用户不提供您的链接,则应将其重定向到该链接应用权限。

所以代码会是这样的

$login_url = $facebook -> getLoginUrl( array(
'scope' => 'publish_stream',
'cancel_url' => YOUR_LINK_HERE
));

关于php - Facebook publish_stream 代码以循环结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872706/

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