8

次のコードを使用して、facebook accessToken を取得しています

string url = "https://graph.facebook.com/oauth/access_token?" +
                         "client_id={0}" +
                         "&redirect_uri={1}" +
                         "&client_secret={2}" +
                         "&code={3}";
            url = string.Format(url, clientId, redirectUri.EncodeUrl(), clientSecret, code);
            //Create a webrequest to perform the request against the Uri
            WebRequest request = WebRequest.Create(url);
            try
            {
                //read out the response as a utf-8 encoding and parse out the access_token
                using (WebResponse response = request.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        //string urlRedirects = response.ResponseUri.ToString();
                        Encoding encode = Encoding.GetEncoding("utf-8");
                        if (stream != null)
                        {
                            StreamReader streamReader = new StreamReader(stream, encode);
                            string accessToken = streamReader.ReadToEnd().Replace("access_token=", "");
                            streamReader.Close();
                            response.Close();
                            return accessToken;
                        }
                    }
                }
            }
            catch
            {
                return null;
            }

ただし、このあいまいなエラーメッセージが常に表示されます

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

コード100「無効なパラメーター」を確認しましたが、私にはまったく意味がありません。

誰かが同様の問題を抱えていますか?

4

3 に答える 3

4
  1. URLに正しいコードを追加していることを確認してくださいたとえば

    http://www.xyz.com/?code=AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20#_=_
    

コードは

    code = AQC399oXame3UKmoAMYnqkZOEXPDNa8ZUFEY9sc6I4YNQnNT-ZgHzpMNnQVZrCUBZVqJRIB1QrXC5xW58_8MNIgQol_PaQvYssUM8OiKjSY5aoqGLBMuCeeHsSqP_mRTd1xiK0iretZcXwMm_27lFYrWFw345Mxod_lfJuB8zI13E8wJUQiArXW_ZlGLNcyxh20

コードの最後に以下を含めることはできません

    #_=_ 

上記で問題が解決しなかった場合


2.redirect_uriは/で終わる必要があります

redirect_uri=http://www.xyz.com/

以下は、上記のエラーを何度か示します

redirect_uri=http://www.xyz.com


3.また 、FacebookのアプリFacebookログインのあるWebサイトが同じアドレスに設定されていることを確認します(例:http: //www.xyz.com/)。

于 2012-05-30T09:58:21.220 に答える
1

また、アプリの ID とシークレットが間違っていたときにエラー メッセージ 400 が表示されました (開発と運用の ID とシークレットを台無しにしてしまいました)。

それらを修正すると(正しいホストにも注意してください)、この問題が修正されました。

于 2016-01-11T15:59:02.397 に答える
1

有効な を取得するには、ユーザーを Facebook ログイン ページに送る必要がありますcode。このコードを使用してaccess_token、ユーザーの を取得する必要があります。

認証ガイドに従ってください。

于 2012-05-29T15:56:39.073 に答える