2011-10-21 3 views
1

J'utilise cette URL pour obtenir le accesstokengoogle + erreur api interdite 403

http://www.googleapis.com/plus/v1/people/me?access_token?client_id=*********.ps.googleusercontent.com&redirect_uri=http://localhost:49261/Default.aspx&client_secret=******************* 

Voici les étapes que je utilise

Obtenir un code d'autorisation

string url = string.Format("{0}?client_id={1}&redirect_uri={2}", AUTHORIZE, this.ConsumerKey, CALLBACK_URL); 
url += "&scope=https://www.googleapis.com/auth/plus.me&response_type=code"; 

ci-dessus url renvoie un code et en utilisant ce code j'utilise échanger le code pour un accesstoken.

http://www.googleapis.com/plus/v1/people/me?access_token?client_id=*********.ps.googleusercontent.com&redirect_uri=http://localhost:49261/Default.aspx&client_secret=******************* 

Voici mon code pour obtenir le accesstoken

public void AccessTokenGet(string authToken) 
     { 
      this.Token = authToken; 
      string accessTokenUrl = string.Format("{0}?client_id={1}&redirect_uri={2}&client_secret={3}&code={4}", 
      ACCESS_TOKEN, this.ConsumerKey, CALLBACK_URL, this.ConsumerSecret, authToken); 

      string response = WebRequest(Method.GET, accessTokenUrl, String.Empty); 

      if (response.Length > 0) 
      { 
       //Store the returned access_token 
       NameValueCollection qs = HttpUtility.ParseQueryString(response); 

       if (qs["access_token"] != null) 
       { 
        this.Token = qs["access_token"]; 
       } 
      } 
     } 


     public string WebRequest(Method method, string url, string postData) 
     { 

      HttpWebRequest webRequest = null; 
      StreamWriter requestWriter = null; 
      string responseData = ""; 

      webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest; 
      webRequest.Method = method.ToString(); 
      webRequest.ServicePoint.Expect100Continue = false; 
      webRequest.UserAgent = "[You user agent]"; 
      webRequest.Timeout = 20000; 


      if (method == Method.POST) 
      { 
       webRequest.ContentType = "application/x-www-form-urlencoded"; 

       //POST the data. 
       requestWriter = new StreamWriter(webRequest.GetRequestStream()); 

       try 
       { 
        requestWriter.Write(postData); 
       } 
       catch 
       { 
        throw; 
       } 

       finally 
       { 
        requestWriter.Close(); 
        requestWriter = null; 
       } 
      } 

      responseData = WebResponseGet(webRequest); 
      webRequest = null; 
      return responseData; 
     } 


     public string WebResponseGet(HttpWebRequest webRequest) 
     { 
      StreamReader responseReader = null; 
      string responseData = ""; 

      try 
      { 
       responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); 
       responseData = responseReader.ReadToEnd(); 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
      finally 
      { 
       webRequest.GetResponse().GetResponseStream().Close(); 
       responseReader.Close(); 
       responseReader = null; 
      } 

      return responseData; 
     } 

Il échoue dans la méthode WebResponseGet. Retourne un HTTP 403 interdit EDIT: probablement je n'étais pas clair plus tôt. Pour expliquer l'erreur est ici ce que son est Le code échoue sur sa demande d'accès jeton

error: { 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "dailyLimitExceededUnreg", 
    "message": "Daily Limit Exceeded. Please sign up", 
    "extendedHelp": "https://code.google.com/apis/console" 
    } 
    ], 
    "code": 403, 
    "message": "Daily Limit Exceeded. Please sign up" 
} 
} 
+2

Quelle est votre question? – Oded

Répondre

1

http://www.googleapis.com/plus/v1/people/me est le point final pour aller chercher le profil d'un utilisateur (voir docs for people.get). Ceci est seulement appelable après vous obtenez un jeton d'accès.

Le point de terminaison pour obtenir le jeton d'accès lui-même est https://accounts.google.com/o/oauth2/token. Selon le flux OAuth2 que vous souhaitez utiliser, les paramètres exacts que vous transmettez à ce point de terminaison diffèrent légèrement, mais tous sont documentés à http://code.google.com/apis/accounts/docs/OAuth2.html

Questions connexes