Facebook PHP sdk-v4-5.0无法上传照片,开发者除外
我正在实现一个应用程序,将jpg文件共享到用户的Facebook帐户。我正在使用Facebook PHP sdk-v4-5.0。这种现象是,该功能可以成功地将照片上传到我的Facebook个人资料,但它不适用于其他人。有人能给我一些建议吗?下面是我的代码。它是在Codeigniter框架中开发的,名为share\u fb.php。Codeigniter生成url的方式是(示例,不是有效链接)Facebook PHP sdk-v4-5.0无法上传照片,开发者除外,php,facebook,upload,facebook-php-sdk,Php,Facebook,Upload,Facebook Php Sdk,我正在实现一个应用程序,将jpg文件共享到用户的Facebook帐户。我正在使用Facebook PHP sdk-v4-5.0。这种现象是,该功能可以成功地将照片上传到我的Facebook个人资料,但它不适用于其他人。有人能给我一些建议吗?下面是我的代码。它是在Codeigniter框架中开发的,名为share\u fb.php。Codeigniter生成url的方式是(示例,不是有效链接) 在其他人都可以使用之前,您需要发送发布\u操作以供批准登录审核是关键字: 未经批准,大多数权限仅适用于在
在其他人都可以使用之前,您需要发送发布\u操作
以供批准登录审核是关键字:
未经批准,大多数权限仅适用于在应用程序中具有角色的用户。谢谢您的回复。我确实添加了publish_actions
来获取Facebook的访问代码,如下所示:if(empty($code)){$permissions=['email','publish_actions'];//可选$loginUrl=$helper->getLoginUrl($my_url,$permissions);header('location:'.$loginUrl);return;}
有错吗?您需要打开我答案中关于登录审核的链接。授权!==登录审核。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
use Facebook\FacebookRequest;
require_once('/home/ubuntu/facebook-php-sdk-v4-5.0-dev/src/Facebook/autoload.php');
class Share_fb extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('session');
}
public function post_yoto_with_comment()
{
session_start();
$app_id = "{app_id}";
$app_secret = "{app_secret}";
$my_url = base_url().'share_fb/post_yoto_with_comment';
$fb = new Facebook\Facebook([
'app_id' => $app_id,
'app_secret' => $app_secret,
'default_graph_version' => 'v2.2'
]);
$helper = $fb->getRedirectLoginHelper();
if( $this->input->get_post('code') )
{
$code = $this->input->get_post('code') ;
}
if(empty($code))
{
$permissions = ['email', 'publish_actions']; // optional
$loginUrl = $helper->getLoginUrl($my_url, $permissions);
header('location:'.$loginUrl );
return;
}
$helper = $fb->getRedirectLoginHelper();
$accessToken = '';
try
{
$accessToken = $helper->getAccessToken();
}
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;
}
if(isset($accessToken))
{
$_SESSION['facebook_access_token'] = (string) $accessToken;
$this->session->set_userdata('access_token', (string) $accessToken);
$fb->setDefaultAccessToken($accessToken);
$image = "/var/www/tmp/yoshiki.jpg";//.$this->session->userdata('ssfilename');
try
{
$data = [
'source' => '@'.$image,
'message' => "rrrr",
];
$response = $fb->post('/me/photos', $data, $accessToken);
}
catch(FacebookRequestException $e)
{
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
}
}
}