本文介绍了Facebook图片上传器(粉丝专页)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码,我试图curl它( file_get_contents 没有工作,真的得到 Curl 工作,我来这里得到一些帮助。

This is my code and I tried to "Curl" it (file_get_contents didn't work for some reason) but since i can't really get Curl to work, I came here to get some help.

我已经忍受了这个10小时了,我还是找不到!请帮助!!

I've been suffering with this for 10 hrs now and I still can't find out!!! please help!!

<?php
$app_id = "xxxxx";
$app_secret = "xxxxx";
$fanpage_id ='3xxxxx';

$post_login_url = "xxxxxxxxxteszt.php";
$photo_url = "xxxxxxxxxx20130412104817.jpg";
$photo_caption = "sasdasd";
$code = $_REQUEST["code"];

//Obtain the access_token with publish_stream permission
if (!$code)
{
    $dialog_url= "http://www.facebook.com/dialog/oauth?"
    . "client_id=" .  $app_id
    . "&redirect_uri=" . urlencode( $post_login_url)
    .  "&scope=publish_stream,manage_pages";
    echo("<script>top.location.href='".$dialog_url."'</script>");
}
if(isset($_REQUEST['code'] ))
{
    print('<script>alert("asd");</script>');
    function curl($url)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $url );
    }
    $token_url="https://graph.facebook.com/oauth/access_token?"
    . "client_id=" . $app_id
    . "&client_secret=" . $app_secret
    . "&redirect_uri=" . urlencode( $post_login_url)
    . "&code=" . $code;
    print($code);
    $response = curl($token_url);
    print($response);
    $params = null;
    parse_str($response, $params);
    $access_token = $params['access_token'];
    // POST to Graph API endpoint to upload photos
    $graph_url= "https://graph.facebook.com/".$fanpage_id."/photos?"
    . "url=" . urlencode($photo_url)
    . "&message=" . urlencode($photo_caption)
    . "&method=POST"
    . "&access_token=" .$access_token;
    echo '<html><body>';
    echo curl($graph_url);
    echo '</body></html>';
}
?>


推荐答案

您不能将URL传递给 CURLOPT_POSTFIELDS 选项。基本网址应在 CURLOPT_URL 选项中设置, CURLOPT_POSTFIELDS 中的参数(使用PHP http_build_query 函数生成编码的查询字符串);

You can't just pass the url to the CURLOPT_POSTFIELDS option. The base url should be set in the CURLOPT_URL option, and the parameters in CURLOPT_POSTFIELDS (using PHP's http_build_query function to generate the encoded query string);

所以你的curl函数看起来像这样:

So your curl function could look something like this:

function curl($url,$parms)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parms, null, '&'));
}

然后你会这样调用:

$token_url="https://graph.facebook.com/oauth/access_token";
$token_parms = array(
  "client_id" => $app_id,
  "client_secret" => $app_secret,
  "redirect_uri" => $post_login_url,
  "code" => $code
);
$response = curl($token_url, $token_parms);

这篇关于Facebook图片上传器(粉丝专页)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 13:43