张贴图片Facebook -图形API - PHP


Post Picture Facebook - Graph API - PHP

我正试图通过Graph API为我的Facebook页面创建一个页面帖子链接,但首先我需要上传一张图片,以便我可以在帖子中使用它。

有人能帮我张贴/上传这张照片在我的电脑在Facebook,然后得到它的链接使用它来创建我的帖子?

这是我用来创建页面帖子链接的PHP代码。它缺少图片,我需要先从我的电脑上上传,然后再使用它的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 = Here I need to put the URL from the picture posted on Facebook
    $request = new FacebookRequest(
      $session,
      'POST',
      '/page_id/feed',
      array (
        'message' => $message,
        'link' => $link,
        'description' => $description,
        'published' => 'false',
        'name' => $name,
        'caption' => $caption,
        //'picture' => $picture, 
        )
    );
    $response = $request->execute();
    $graphObject = $response->getGraphObject();
?>

谢谢

第一步:

您可以使用API /photos将照片上传到facebook(这将上传照片到您的相册)-

API: 'POST /me/photos

参数

:

'source' => //The photo, encoded as form data,
'no_story' => true, // no story will be generated on uploading the photo
'message' => //optional

获取图像原始数据-

main.php

<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
    <p><label for="source">Photo</label><input type="file" name="source" /></p>
    <p><input type="submit" value="Upload" /></p>
</form>
</body>
</html>

upload.php

if (!empty($_FILES)) {
   $uploaddir = './uploads/'; // Upload folder
   $uploadfile = $uploaddir . basename($_FILES['source']['name']);
   if (move_uploaded_file($_FILES['source']['tmp_name'], $uploadfile)) {
       $attachment =  array(
           'message'  => "hi",
           'source' => "@" . realpath($uploadfile),
           'no_story' => true
       );
       $api_response = new FacebookRequest($session,'POST','/me/photos',$attachment);
       $result = json_decode($api_response, TRUE);
       $id = $result->id;
   }    
}

我们将在下一步中使用这个$id


步骤2:

/{id}?fields=picture发出/GET请求

您将在响应中获得图片url - $response->{'picture'}


步骤3:

使用此图片url作为/feed API的picture参数