2011-12-17 2 views
1

Я изучаю задачу google task api rest.401 несанкционирован с использованием задачи google

У меня есть доступ к tokken.

теперь я пытаюсь получить Tasklist используя этот отдых URL: https://www.googleapis.com/tasks/v1/users/@me/lists

В Google документации задачи записи, что мне нужно посланный маркеры доступа заголовок авторизации HTTP, но я не знаю, как link

Я ищу результат в Интернете, но не нашел решения. Я также искал этот сайт для решения, но не получил его.

Я получаю 401 несанкционированную ошибку при попытке запросить.GetResponse(); это мой код

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 публикует .Net library для доступа к Google Api, это включает в себя помощник для ведения аутентификации, я предложил бы использовать эту Апи и начиная с samples издателей проекта (в том числе Task Api Sample).

Если вы хотите продолжить работу по вызову Api, вы можете либо использовать communications library, либо посмотреть на source code и посмотреть, как Google сделал сообщение.

EDIT

Из источника, связанного выше, вы можете найти OAuth Authenticator, который добавляет заголовок HTTP System.Net.HttpRequestHeader.Authorization со значением, указанным в OAuthUtil.GenerateHeader. Соответствующий раздел скопирован ниже.

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

Я знаком с библиотекой .NET для Google API, но я хочу использовать httpRequest. потому что было бы хорошо и для twitter api, а также для пыльников rest api. все, что мне нужно, это знать синтаксис, который отправил бы доступ tokken к Google. – Silagy

+0

большое спасибо – Silagy

Смежные вопросы