这是我的代码,我试图“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>';
}
?>
答案 0 :(得分:4)
您不能只将网址传递给CURLOPT_POSTFIELDS
选项。基本网址应在CURLOPT_URL
选项中设置,参数在CURLOPT_POSTFIELDS
中设置(使用PHP的http_build_query
函数生成编码的查询字符串);
所以你的卷曲功能看起来像这样:
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);