2011-12-17 3 views
1

私はGoogleタスクのAPI休憩を使用することを学んでいます。401許可なくgoogleタスクを使用する

私はtokkenへのアクセスに成功しました。私は、HTTPのAuthorizationヘッダーでアクセストークンを送っする必要がGoogleのタスクのドキュメントの書き込みではhttps://www.googleapis.com/tasks/v1/users/@me/lists

しかし、私はどのように link

知らない:

今私は、この残りのURLを使用してタスクリスト取得しようとしています私はウェブで結果を検索していますが、解決策は見つかりませんでした。 私もこのサイトを検索して解決しましたが、取得できませんでした。

request.GetResponse();を試行すると、401の不正なエラーが発生します。 これは私のコード

private AccessToken _accessToken = null; 
private string Apikey = "my api key"; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    _accessToken = (AccessToken)Session["AccessTokken"]; 
    string _customerkey = "my customer key"; 
    string _customerSecret = "my customer secret key"; 
    Response.Write(_accessToken.Token); 

    string nostring = ""; 
    string nnString = ""; 
    OAuthBase oauth = new OAuthBase(); 
    Uri t = new Uri("https://www.googleapis.com/tasks/v1/users/@me/lists"); 
    string u = oauth.GenerateSignature(t, _customerkey, _customerSecret, _accessToken.Token, 
             _accessToken.TokenSecret, "GET", oauth.GenerateTimeStamp(), 
             oauth.GenerateNonce(), out nostring, out nnString); 

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(nostring); 
    request.Method = "GET"; 

    //request.Headers.Add("Authorization: Bearer " + _accessToken.Token); 
    WebResponse response = request.GetResponse(); 
    StreamReader reader = new StreamReader(response.GetResponseStream()); 
    string responseString = reader.ReadToEnd(); 
    reader.Close(); 


    Response.Write(responseString); 

答えて

0

あり、GoogleはGoogleのAPIにアクセスするための.Net libraryを発行している、これは私がこのAPIを使用して(Task Api Sample含む)samplesプロジェクト出版社から始まることをお勧め認証を行うためのヘルパーが含まれています。

あなたはApiの呼び出しを手動で行う場合は、communications libraryを使用するか、source codeを見て、Googleがどのように通信を行ったかをご覧ください。あなたの上にリンクされたソースから

EDIT

OAuthUtil.GenerateHeaderで指定された値を持つHTTPヘッダーSystem.Net.HttpRequestHeader.Authorizationを追加OAuth Authenticatorを見つけることができます。該当するセクションは以下のとおりです。

StringBuilder sb = new StringBuilder(); 
sb.Append("Authorization: OAuth oauth_version=\"1.0\","); 
sb.AppendFormat("oauth_nonce=\"{0}\",", EncodingPerRFC3986(nonce)); 
sb.AppendFormat("oauth_timestamp=\"{0}\",", EncodingPerRFC3986(timeStamp)); 
sb.AppendFormat("oauth_consumer_key=\"{0}\",", EncodingPerRFC3986(consumerKey)); 
if (!String.IsNullOrEmpty(token)) 
{ 
    sb.AppendFormat("oauth_token=\"{0}\",", EncodingPerRFC3986(
} 
sb.Append("oauth_signature_method=\"HMAC-SHA1\","); 
sb.AppendFormat("oauth_signature=\"{0}\"", EncodingPerRFC3986(signature)); 

return sb.ToString(); 

Apiのこの最下層を使用して、生成されたサービスについて心配する必要はありません。このコードがhttp://www.apache.org/licenses/LICENSE-2.0で覆われていることを覚えておいてください。そうすれば、法的には、この特定の関数に対してDLLを直接使用する方が簡単かもしれません。

+0

私はGoogle APIの.NETライブラリに精通していますが、httpRequestを使用したいと思います。それはまた、TwitterのAPIのために良いだろうので、ansは残りのAPIをans。 私が必要とするのは、tokkenへのアクセスをgoogleに送信する構文を知ることだけです。 – Silagy

+0

ありがとう – Silagy

関連する問題