0

私はそれをこのように取得しようとしています:

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

URLアドレスのすべての変数は適切に設定されていますが、このURLをブラウザーに配置すると、次のようになります。

{
   "error": {
      "message": "No user access token specified",
      "type": "OAuthException",
      "code": 1
   }
}

何度も何度も。私は何が間違っているのですか?

編集:

私の現在の設定:スクリプトのアドレス:www.domain.com/folder/index.php

The$my_url = "www.domain.com"

Facebookの namespace場合::my_namespace

アプリドメイン:domain.com

サイトのURLhttp://www.domain.com/

これは私の設定ですが、それでも同じエラーが発生します

4

2 に答える 2

1

既存のアクセス トークンを送信していますか? 最初に access_token を用意する必要があります。これを送り返して、有効期限が延長されたアクセス トークンを取得する必要があります。

エラーから、私が理解できるのは、トークンを送信していないということです。

これは私が他の質問で答えたコードです.FBドキュメントで明確に指定されています.

<?php

//read more : https://developers.facebook.com/docs/howtos/login/server-side-login/
session_start();
   $app_id = "xxxxxxxxxxxxxx";
   $app_secret = "xxxxxxxxxxxxxxxx";
   $my_url = "www.stackoverflow.com/";  // redirect url

    $code = $_REQUEST["code"];

   if(empty($code)) {
     // Redirect to Login Dialog
     $_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'] . "&scope=publish_stream,read_friendlists,email";


     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }
if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) {
     $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);
     $longtoken=$params['access_token'];


//save it to database    
?>
于 2012-11-15T13:44:27.793 に答える
1

そこにアプリ トークンを配置することはできません。ユーザーアクセス トークンである必要があります。既存のユーザーアクセス トークンを使用してください。

于 2012-11-15T13:45:41.327 に答える