2017-08-29 8 views
0

私は本当にこのOauthのことを完全に理解するのに苦労しています。私は残酷なプロセスを遅らせています。access_token&refresh_tokenを一旦OAuth APIに呼び出す方法

は今、私はaccess_tokenrefresh_tokenid_tokenを持っている:

{ 
    "access_token":"SlAV32hkKG" 
    "id_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", 
    "token_type":"Bearer", 
    "refresh_token":"76c5cdeecfd1543cfd4c3e7c054780ac", 
    "expires_in": 3600 
} 

次に、私は最終的に、実際のAPI呼び出しを行うために上記を使用する必要があります。私が見たと言ったときに私を信じてください。しかし、C#.NETアプリケーションでこの呼び出しを行う方法の素敵でシンプルでクリーンなコード例は見つかりません。

私は自分のドキュメントを持っていない消費しようとしているAPI、そしてこれは、彼らがこのステップについて語ったすべてです:

4.メイクのAPIは、今すぐあなたのアプリケーションが持っている

を要求有効なアクセストークンを使用すると、その トークンを使用して、PDK APIに認証された要求を行うことができます。

認証:ベアラ eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9 ... GmUdC2H13YMCwc30Z3l5RCrbwQ

これは無記名式の認証に簡単にアクセストークンを含む することによって行われ、あなたのrequests.The Authorizationヘッダの ヘッダはと ようになりますコード記述の観点からは役に立たない。実際の認証ではなく、通常のヘッダーとしてaccess_tokenが含まれているので、最終的な(実際の)API呼び出しを行うと、彼らは言っていますか?もしそうなら、ヘッダーの名前(キー)は何ですか?そしてAuthorization: Bearerそれはあまりにも自分のヘッダーですか?

This thread非常に役に立ちましたが、彼の例を自分がしようとしているものに翻訳するのに問題があります。

これはオフラインのアプリなので、どういうわけか `resresh_token 'も含める必要があります。

私が知っているのは、ここでのプロトコルは、既に試したコードを提供し、それを修正する方法の提案を求めることです。そして、それは普通私がしていることです。しかし正直なところ、私はここで失われています。

ありがとうございます!

+1

はい、ヘッダーとして追加します。 'key'は' Authorization'で、 'value'は' Bearer your_key_goes_here'です。 – Equalsk

+0

この質問とは無関係 - あなたのバイオが好きです。 私はピザが好きです。そしてモバイル開発。そして.NET。ピザを送ってください。 HAHAHAHAHA :) – Winnie

+0

ええ、まだそのピザを待っている:( –

答えて

1

access_tokenを使用して承認ヘッダーを設定する必要があります。 例は次のとおりです。

var myUri = new Uri(fullpath); 
var request = WebRequest.Create(myUri); 
var httpRequest = (HttpWebRequest)request; 
httpRequest.PreAuthenticate = true; 
httpRequest.Headers.Add("Authorization", "Bearer " + access_token); 
httpRequest.Accept = "application/json"; 

var webResponse = request.GetResponse(); 
var responseStream = webResponse.GetResponseStream(); 
if (responseStream == null) return null; 
var reader = new StreamReader(responseStream, Encoding.Default); 
var result = reader.ReadToEnd(); 
responseStream.Close(); 
webResponse.Close(); 
+0

OK感謝!!!そして、どのように 'refresh_token'? –

+0

について' access_token'の有効期限が切れたとき、あなたは新しい ' – Zahed

+0

access_token'を取得するために' refresh_token'を使用することができます実際の呼び出しがどのように行われるのですか?var json = httpRequest.GetResponse(); –

関連する問題