问题描述
这是我的代码,我试图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图片上传器(粉丝专页)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!