Php 通过图形API上传照片-多部分/表单数据
我正在尝试使用Graph API在我的页面中创建页面帖子链接。我能够创建这篇文章,但是我在发送图片以供使用时遇到了一些问题 我试图使用电脑中的图片,但我发现(在stackoverflow中)我需要使用互联网上已有的URL,或者先将我电脑中的照片上传到Facebook,以便以后使用 我查看了如何通过Graph API从我的计算机上传照片,然后在我的帖子中使用此URL作为图片,但我发现我需要使用多部分/表单数据 但我不知道如何使用多部分/表单数据来实现(上传照片并获取其URL)。有人知道怎么做吗 以下是我现在使用的PHP代码:Php 通过图形API上传照片-多部分/表单数据,php,facebook,facebook-graph-api,file-upload,Php,Facebook,Facebook Graph Api,File Upload,我正在尝试使用Graph API在我的页面中创建页面帖子链接。我能够创建这篇文章,但是我在发送图片以供使用时遇到了一些问题 我试图使用电脑中的图片,但我发现(在stackoverflow中)我需要使用互联网上已有的URL,或者先将我电脑中的照片上传到Facebook,以便以后使用 我查看了如何通过Graph API从我的计算机上传照片,然后在我的帖子中使用此URL作为图片,但我发现我需要使用多部分/表单数据 但我不知道如何使用多部分/表单数据来实现(上传照片并获取其URL)。有人知道怎么做吗 以
<?php
session_start();
require_once( 'Facebook/FacebookHttpable.php' );
require_once( 'Facebook/FacebookCurl.php' );
require_once( 'Facebook/FacebookCurlHttpClient.php' );
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookClientException.php' );
require_once( 'Facebook/FacebookOtherException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/FacebookPermissionException.php' );
require_once( 'Facebook/FacebookServerException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphSessionInfo.php' );
require_once( 'Facebook/GraphUser.php' );
use Facebook\FacebookHttpable;
use Facebook\FacebookCurl;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookClientException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\FacebookPermissionException;
use Facebook\FacebookServerException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
use Facebook\GraphUser;
FacebookSession::setDefaultApplication('app','password');
$session = new FacebookSession('token');
$message = 'Test';
$link = "http://www.example.com.br";
$description = 'Description';
$name = 'Name';
$caption = 'Caption';
// $picture = 'file:///C:/Users/VIrgilio/Desktop/Petlove/Facebook%20Ads/Campanhas/Assento/Link/Assento-Novo.png'; //this is where the picture is in my PC
$request = new FacebookRequest(
$session,
'POST',
'/page_id/feed',
array (
'message' => $message,
'link' => $link,
'description' => $description,
'published' => 'false',
'name' => $name,
'caption' => $caption,
// 'picture' => $picture, // the URL from my PC gives me an error, here is where I need to put the URL from the uploaded photo
)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
?>
谢谢您不能使用计算机上的url。在本例中,您必须使用公开可用的映像。我的意思是说图像应该在互联网上 例如,domain example.com上托管的图像具有如下实际路径
http://example.com/wp-content/themes/stack/stack-theme/images/stack-logo.png
您必须以这种方式提供路径
如果您想从您的计算机上传图像并将其发布在Facebook上,请使用多部分/表单数据
为清晰起见,请阅读此文档:。请查看
$fb->fileToUpload($image\u路径),
完整示例:
require_once 'facebook-php-sdk-v4-5.0.0/src/Facebook/autoload.php';
// create instance of Facebook\Facebook class
$facebook = new Facebook\Facebook(array(
'app_id' => $app_id,
'app_secret' => $app_secret,
'default_graph_version' => 'v2.4',
'default_access_token' => $token,
));
$fb = &$facebook;
// Setup facebook post info
$data = array(
'source' => $fb->fileToUpload($image_path),
'caption' => $message,
);
// Send the request to Graph
try {
$response = $fb->post("/$page_id/photos", $data);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
var_export($response);
你能试试“图片”=>“@”吗$图片,但删除文件:///