4

アプリ センターを使用してアプリを宣伝しようとしていますが、Web プレビューから Web サイトにアクセスできません。呼び出されるリンクはhttp://www.myappsite.it/?fb_source=appcenter&fb_appcenter=1&code=a_long_stringです

myappsite の index.php から、この平和な php コードを使用して、Facebook からユーザーを取得します

$code = $_REQUEST["code"];

if($_REQUEST['state'] == $_SESSION['state'] && !$user && strlen($code) > 0) 
{
$token_url = "https://graph.facebook.com/oauth/access_token?" . 
"client_id=" . $appId . "&redirect_uri=" . urlencode("http://www.myappsite.it/") . 
"&client_secret=" . $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);
}

しかし、$token_url が返されるため、$params['access_token'] は空です。

{
"error": {
    "message": "Error validating verification code.",
    "type": "OAuthException",
    "code": 100
    }
}

アプリ センターのプレビュー Web ページからユーザーをログインさせるにはどうすればよいですか?

4

2 に答える 2

6

ドキュメントの認証された紹介の部分から(アプリセンターは認証された紹介としてカウントされます)

クエリ文字列設定を使用する際の特別な考慮事項を参照してください。

サーバー側の認証フローを使用する場合は、コードをアクセストークンと交換するときに、redirect_uriパラメーターを正しく渡していることを確認することが重要です。コードパラメーターを使用せずに、redirect_uriパラメーターをサイトへのクリックスルーURLに設定する必要があります。ほとんどの場合、URLは次のようになります。

http://www.example.com/?fb_source=search&code=CODE_HEREコードパラメータを削除すると、次のようになります。

http://www.example.com/?fb_source=searchこれはredirect_uriに設定する必要のある値です。クリックスルーURLに追加されたクエリパラメータは変更される可能性があるため、このロジックが動的であることを確認してください。

上記の例を使用すると、これはredirect_uriパラメータが次のようになる必要があることを意味しますhttp://www.myappsite.it/?fb_source=appcenter&fb_appcenter=1

于 2012-06-15T15:28:35.893 に答える