【问题标题】:Facebook picture uploader (fanpage)Facebook 图片上传器(粉丝专页)
【发布时间】:2013-07-01 10:02:13
【问题描述】:

这是我的代码,我尝试 "Curl" 它(file_get_contents 出于某种原因没有工作)但因为我无法真正获得 Curl为了工作,我来这里寻求帮助。

我已经为此痛苦了 10 个小时,但我仍然无法找到!请帮忙!!

<?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>';
}
?>

【问题讨论】:

标签: facebook facebook-graph-api curl upload image


【解决方案1】:

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

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

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多