我正在尝试通过我的代码将照片上传到用户的个人资料。以下是我正在使用的代码:
echo $imageName;
$data = [
'message' => 'Visit http://www.mywebsite.com',
'source' => $fb->fileToUpload($imageName),
];
echo 'hi1';
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post('/me/photos', $data, $accessToken);
} 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;
}
echo 'hi';
在上面的代码中,echo $imageName
正在打印所需的图像名称(变量包含所需的值,例如images / abc.jpg)但是当使用以下代码时它不起作用:
$fb->fileToUpload($imageName)
如果我删除变量名并给出直接值,那么它工作正常:
$fb->fileToUpload("images/abc.jpg") .
你可以帮我解决我的代码错误吗。
答案 0 :(得分:1)
提供完整的图片路径(http://example.com/image/1.jpg)
尝试以下一个。
这在第5版中进行了测试
require_once __DIR__ . '/src/Facebook/autoload.php';
$app_ID = 'xxxxxxxxx';
$APP_SECRET = 'xxxxxxxxxx';
$access_token = 'xxxxxxxxxx';
$fb = new Facebook\Facebook([
'app_id' => $app_ID,
'app_secret' => $APP_SECRET,
'default_graph_version' => 'v2.5',
]);
$data = [
'message' => 'My photo upload example.',
'source' => $fb->fileToUpload('http://example.com/images/1.jpg'),
];
try {
$response = $fb->post('/me/photos', $data, $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 'Photo ID: ' . $graphNode['id'];
答案 1 :(得分:0)
只需尝试连接,例如$ fb-> fileToUpload('"'。$ imageName。'"');