0

Kohana で Facebook 認証をしようとすると問題が発生します。

私がすることは:

kohanaには、このコードを埋め込んだloginview.phpというビューファイルがあります

href="https://www.facebook.com/dialog/oauth?client_id=341106515944015"&redirect_uri=http://verana.ge/fbauth/&scope=user_about_me&state=veranalast">

そしてコントローラーフォルダーには、このコードがあるfbauth.phpというコントローラーがあります

 public function action_index()
{

   $app_id = "341106515944015";
   $app_secret = "79f547b92f34f886cc8d51ca1a5d33e0";
   $my_url = "http://verana.ge/";

  // session_start(); <!-- commented because in Kohana the Session is already started -->

   $code = $_REQUEST["code"];

   if(empty($code)) {
   $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
         $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
     . $_SESSION['state'];
   echo("<script> top.location.href='" . $dialog_url . "'</script>");
    }

if($_REQUEST["state"] = 'veranalast') {
   $token_url = "https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
   . "&client_secret=" . $app_secret . "&code=" . $code;


   $response = file_get_contents($token_url);

   $params = null;

   parse_str($response, $params);


   $graph_url = "https://graph.facebook.com/me?access_token=" 
             . $params['access_token'];

   $user = json_decode(file_get_contents($graph_url));
           echo("Hello " . $user->name);
}
else {
   echo("The state does not match. You may be a victim of CSRF.");
}


}   

しかし、Facebookのリンクをクリックして接続しようとすると、次のようなエラーが表示されます

  ErrorException [ Warning ]: file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=341106515944015&redirect_uri=http%3A%2F%2Fverana.ge%2F&client_secret=79f547b92f34f886cc8d51ca1a5d33e0&code=AQB9jQDcWXNVhPoxhOH-GyJ_0P0UQD9y5wfFy8cfP48TxvlX0VnycEWSpTOC0NWXTyCfssTUHCwFjmZdySy74zor_AQGvtzE5YCkB3asMBhWiiAJhesbFa_GrQIzT7UWiNrbl73CmVz5hell-shwrnavUviuDvpMqg6jCbMBHa6nb39xvidf-P5KOe4wlyR9TG8) [function. file-get-contents]: ストリームを開けませんでした: HTTP リクエストが失敗しました! HTTP/1.0 400 Bad APPPATH/classes/controller/fbauth.php [ 32 ]
27 $token_url = "https://graph.facebook.com/oauth/access_token?"
28 . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
29 . "&client_secret=" . $app_secret . "&コード=" . $コード;
30
31             
32 $response = file_get_contents($token_url);
33             
34 $params = null;
35                         
36 parse_str($応答、$params);
37

また、ダブルチェックのために、この関数をコハナの外で作成しましたが、問題なく動作しました。

私がしたことは、コハナの外で index.php という名前のファイルを作成し、そこに html に Facebook 認証のタグを付け、次に testauth.php という名前のファイルを作成し、そこに fbauth.php に入れているのと同じコードを入れて、私が言ったように、問題なく動作しました。

それを理解する簡単な方法があるかもしれませんが、私はそれを知りません。修正方法を教えてください。

イデスは?

前もって感謝します

4

1 に答える 1

0

開いてみましたhttps://graph.facebook.com/oauth/access_token?client_id=341106515944015&redirect_uri=http%3A%2F%2Fverana.ge%2F&client_secret=79f547b92f34f886cc8d51ca1a5d33e0&code=AQB9jQDcWXNVhPoxhOH-GyJ_0P0UQD9y5wfFy8cfP48TxvlX0VnycEWSpTOC0NWXTyCfssTUHCwFjmZdySy74zor_AQGvtzE5YCkB3asMBhWiiAJhesbFa_GrQIzT7UWiNrbl73CmVz5hell-shwrnavUviuDvpMqg6jCbMBHa6nb39xvidf-P5KOe4wlyR9TG8か?400 HTTP エラーが発生します。全て大丈夫。

于 2012-04-26T09:49:19.723 に答える