$ fb-> fileToUpload($ imageName)无法正常工作

时间:2016-02-04 06:47:07

标签: php facebook

我正在尝试通过我的代码将照片上传到用户的个人资料。以下是我正在使用的代码:

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") . 

你可以帮我解决我的代码错误吗。

2 个答案:

答案 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。'"');