Php 通过facebook API上传照片-路径名问题

Php 通过facebook API上传照片-路径名问题,php,image,facebook-graph-api,Php,Image,Facebook Graph Api,我目前在通过facebook API上传图像时遇到问题-我没有通过API返回任何错误,目前我认为这可能是我传递的文件路径不正确的问题 在用户使用应用程序后,图像存储在我们的服务器上,然后我想将其发布到facebook 我的代码如下: 运行后,我没有收到来自API的响应,而如果我故意更改oauth_令牌,我会收到一个错误(因此我知道数据肯定是发布的) 我还打印了args数组,以便能够准确地看到我发布的内容: 以下是回应 如果我在@sign之后导航到URL,即使我删除了@C:\Domains并替换为

我目前在通过facebook API上传图像时遇到问题-我没有通过API返回任何错误,目前我认为这可能是我传递的文件路径不正确的问题

在用户使用应用程序后,图像存储在我们的服务器上,然后我想将其发布到facebook

我的代码如下:

运行后,我没有收到来自API的响应,而如果我故意更改oauth_令牌,我会收到一个错误(因此我知道数据肯定是发布的)

我还打印了args数组,以便能够准确地看到我发布的内容:

以下是回应

如果我在@sign之后导航到URL,即使我删除了@C:\Domains并替换为www,它也会被破坏。我已经尝试传递了一个URL,如果用户知道该文件名,他们实际上可以导航到该URL

e、 g

^这是一个有效的链接,但在传递图像时,图像仍然没有实际上载

任何帮助都将不胜感激

Array ( [message] => Photo from ********[image] => @C:\Domains\******.co.uk\wwwroot\v2\competition\fb\photos\collagetest.jpg )

//upload photo
            $file= './photos/'.basename('collagetest.jpg');
            $args = array(
               'message' => 'Photo from friendbooth',
            );
            $args['image'] = '@' . realpath($file);
            $ch = curl_init();
            $url = 'https://graph.facebook.com/photos?access_token='.$_SESSION['oauth_token'];
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
            $data = curl_exec($ch);
            print_r($args);
            //returns the photo id
            print_r(json_decode($data,true));

            ?>
            <img src="collagetest.jpg" />
            <?
Array([message]=>Photo from*********[image]=>@C:\Domains\********.co.uk\wwwroot\v2\competition\fb\photos\collagetest.jpg)
//上传照片
$file='./photos/'.basename('collagetest.jpg');
$args=数组(
'消息'=>'friendbooth照片',
);
$args['image']='@'。realpath($file);
$ch=curl_init();
$url='1https://graph.facebook.com/photos?access_token=“.$”会话[“oauth_令牌];
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_头,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$args);
$data=curl\u exec($ch);
打印费用($args);
//返回照片id
打印(json解码($data,true));
?>
如果我在@符号后导航到URL,它将被破坏

“破碎”是什么意思

从PHP脚本中读取该文件系统路径吗?(请检查,不要猜测。)

即使我删除了@C:\Domains并替换为www,我也尝试过传递URL


在这里给出URL是胡说八道——这里应该有一个文件系统路径。(你知道这两者之间的区别吗?

结果证明这与文件路径无关

添加

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

完全解决了这个问题!希望这对以后的其他人有帮助。如果发布到HTTPS URL,请尝试在没有收到任何响应的情况下添加上述内容(错误消息等意味着您收到了响应)

hi感谢您的响应-我使用if(is_readable($args['image']){echo“明白了”;}else{echo“该死”}检查了$args['image']路径不幸的是,路径不可读。你知道我需要采取什么措施使其可读吗?进一步深入了解这个问题——根据下面的评论,我检查了我试图上传的文件是否可读。现在是,但是照片仍然没有上传。我正在检查facebook的回复,但是$result curl_setopt($ch,CURLOPT_URL,$URL)中没有返回任何内容;curl_setopt($ch,CURLOPT_头,false);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POST,true);curl_setopt($ch,CURLOPT_POSTFIELDS,$args);$data=curl\u exec($ch);$result=@json_decode($data);我使用的url是有效的,因为我已手动检查