私はこれを2時間作業していますが、何が間違っているのか分かりません。私はcURLにURL(パラメータ付き)だけを要求し、応答はJSON形式の何らかのaccess_tokenであると予想されますが、私は継続的にエラーが発生しています。curl_exec()
関数はfalse
を返しています。準備されたURLをブラウザのアドレスバーに直接貼り付けると適切なaccess_tokenが得られるため、URLは問題ありません。私はグラフAPI(Facebook)リクエストを作成していることを知る必要があります。ここではいくつかのコードです:単純なGET要求でcURL関数がfalseを返す
private function getAccessToken() {
$uri = $this->prepareTokenUri(); // getting the uri
echo "<strong>$uri</strong><br/>"; // printing the uri for debugging purpose
$this->setCurlToGet($uri); // explained below
$response = curl_exec($this->curl);
echo "<b>Here Goes Response</b>";
var_dump($response); // boolean false
$response = json_decode($response, true);
$this->token_expires = $response['expires_in'];
$this->token_type = $response['type'];
return $response['access_token'];
}
機能がsetCurlToGet()
だけで、次を行います。
// call this function only when making a GET request
private function setCurlToGet($url) {
$this->unsetCurl();
$this->curl = curl_init();
curl_setopt($this->curl, CURLOPT_URL, $url);
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
return $this->curl;
}
とunsetCurl()
方法は次の通りである:私はvar_dumpedいる
private function unsetCurl() {
if(!is_null($this->curl)) {
curl_close($this->curl);
$this->curl = null;
}
}
を()すべてを、 cURLリソース変数($this->curl
)であり、実際にはcurlリソース変数です。 curl_exec()
への呼び出しはfalseを返すので、私は理由を理解できません。繰り返しますが、URLに何も問題はないことを繰り返したいのですが、印刷されたURL(行echo "<strong>$uri</strong><br/>";
)がコピーされてブラウザのアドレスバーに貼り付けられたときに、結果が必要なaccess_tokenになるためです。あなたはprepareTokenUri()
が準備されていることをURIのパターンを見てみたかった場合
:
https://graph.facebook.com/v2.3/oauth/access_token?client_id={my-appid}&redirect_uri={response-handler-script-uri}&client_secret={app-secret-code}&code={a-long-code}
apacheのサービスをリロード 'curl_error()'何も表示していますか? – AbraCadaver
が理想的に機能するはずです。チェックするためにプライベートにプライベートに変更する –
@AbraCadaverちょうどチェックした。 SSL証明書の問題:ローカル発行者証明書を取得できません。今、このことを解決する方法は? – Fresher