图片没有从localhost发布在facebook页面上

时间:2014-03-05 11:30:23

标签: php facebook facebook-graph-api

我使用以下代码通过我的Facebook应用程序发布到我的页面墙上

$params = array(
    // this is the main access token (facebook profile)
   "access_token" => $access_token,
   "message" => "Here is a blog post about auto posting on Facebook without being signed in using PHP #php #facebook",
   "link" => $AD_Link,
   "picture" => "https://localhost/adwit1/uploaded_images/himanshu124/Lighthouse.jpg",
   "name" => $AD_Name,
   "caption" => $AD_Caption,
   "description" => $AD_Desc
);

try {
  $ret = $fb->api('/me/feed', 'POST', $params);
  echo 'Successfully posted to Facebook Personal Profile '.$ret['id'];
} catch(Exception $e) {
  echo $e->getMessage();
}

使用此代码,除了指定的图像外,所有内容都会发布在我的FB页面上。但是,如果我直接在浏览器中粘贴上面提到的图像链接,我就能够查看图像。另一方面,如果我在“picture”参数中使用以下链接http://i.imgur.com/lHkOsiH.png,则图像会在FB页面上发布。

我在stackoverflow.com上也发现了类似的问题,但没有提到令人满意的答案。

如果有人知道我遇到这样的问题,请帮助我。

2 个答案:

答案 0 :(得分:1)

您遇到此问题是因为Facebook无法读取本地主机服务器,唯一能够读取本地主机的人就是您,没有其他人。

您可以查看以下图片,因为它位于您的本地主机上。

https://localhost/adwit1/uploaded_images/himanshu124/Lighthouse.jpg

要解决此问题,请在任意图像商店网站上传图像然后获取其链接,在这种情况下,Facebook将能够读取图像。

答案 1 :(得分:0)

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');  

require_once APPPATH."/third_party/facebook.php";

class FacebookLib{

    private $CI;

    /**
     * loading codeIgniter instance
     */
    public function __construct(){
        $this->CI =& get_instance();
    }

    public function postOnFaceBook(){
        $config = array();
        $config['appId'] = '*********';
        $config['secret'] = '********';
        $config['fileUpload'] = true; // optional
        $fb = new Facebook($config);

        //$user = $fb->getUser();
        //echo $access_token = $fb->getAccessToken();
        /*print_r($user);
        if($user){
            echo $fb->getAccessToken();
        }
        exit;*/
        //$access_token = 
        $param = array();
        $param['access_token'] = "********";
        //$param['access_token'] = $access_token;
        $param['message'] = "Here is a blog post about auto posting on Facebook using PHP #php #facebook6";
        $param['link'] = "http://localhost/FreightBazaar/";
        $param['picture'] = "http://yoururl.com/assets/images/customer/profile/1476700963.3612driver-app-ico--4-.png";
        $param['name'] ="How to Auto Post on Facebook with PHP";
        $param['caption'] ="";
        $param['description'] ="Automatically post on Facebook with PHP using Facebook PHP SDK. How to create a Facebook app. Obtain and extend Facebook access tokens. Cron automation.";


        // post to Facebook
        // see: https://developers.facebook.com/docs/reference/php/facebook-api/
        try {
            $ret = $fb->api('/page id/feed', 'POST', $param);
            return "Successfully posted to Facebook";
            //$ret = $fb->api('/page id/feed', 'POST', $params);
            //echo 'Successfully posted to Facebook';
        } catch(Exception $e) {
            return $e;
            //echo $e->getMessage();
        }
    }

}

Locahost网址未被识别,因此请使用实时网站网址链接......例如www.example.com/images/profile.png

相关问题