2017-10-12 2 views
-1

J'utilise ce code parce qu'il ya une erreur:Comment récupérer de contacter Google Mail par asp.net

Execution of authentication request returned unexpected result: 404

DataSet ds = new DataSet(); 
      ds.Tables.Add("GmailContact"); 
      ds.Tables[0].Columns.Add("EmailId"); 
      RequestSettings rs = new RequestSettings("GetGmailContact", txtUsername.Text, txtPassword.Text); 
      rs.AutoPaging = true; 
      ContactsRequest cr = new ContactsRequest(rs); 
      Feed<Contact> f = cr.GetContacts(); 
      foreach (Contact t in f.Entries) 
      { 
       foreach (EMail email in t.Emails) 
       { 
        DataRow row = ds.Tables[0].NewRow(); 
        row["EmailId"] = email.Address.ToString(); 
        ds.Tables[0].Rows.Add(row); 
       } 
      } 
      GridView1.DataSource = ds.Tables[0]; 
      GridView1.DataBind(); 
      lblStatus.Text = "Total Contact For" + txtUsername.Text + ":" + ds.Tables[0].Rows.Count.ToString(); 

enter image description here

Répondre

0

Step

1 Go to https://console.developers.google.com/project and create project.

2 Select project, select APIs & auth from top left corner menu.

3 Select Credentials

4 Create OAuth with button Create new Client ID (Application type - Installed Aplication.

5 Fill field Product Name

6 Save

After that you got Client ID for native application with: Client ID, Client secret, Redirect URIs

Install Google.Apis.Auth from NuGet

Code

string clientId = null; // https://console.developers.google.com/project/xxx 
     string clientSecret = null; // https://console.developers.google.com/project/xxx 
     string accessCode = null; // You will get this code after GetAccessToken method 
     string redirectUri = null; // https://console.developers.google.com/project/xxx 
     string applicationName = null; // https://console.developers.google.com/project/xxx 
     // Scopes https://support.google.com/a/answer/162106?hl=en 
     string scopes = null; // put your scope like https://www.google.com/m8/feeds/ 
     string accessType = "offline"; 
     string tokenType = "refresh"; 

     OAuth2Parameters parameters = new OAuth2Parameters 
     { 
      ClientId = clientId, 
      ClientSecret = clientSecret, 
      RedirectUri = redirectUri, 
      Scope = scopes, 
      AccessType = accessType, 
      TokenType = tokenType 
     }; 

     if (accessCode == null) 
     { 
      string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); 
      // Start webbrowser 
      Process.Start(url); 

      // Load code from web via popup, etc. 
      parameters.AccessCode = accessCodeFromWeb; 
     } 

     // Check accessToken and refreshToken 
     // After first acceess with GetAccessToken you will get that information 
     if (accessToken == null || refreshToken == null) 
     { 
      OAuthUtil.GetAccessToken(parameters); 

      // Save yours accessToken and refreshToken for next connection 
      accessToken = parameters.AccessToken; 
      refreshToken = parameters.RefreshToken; 
     } 
     else 
     { 
      // Restore your token from config file, etc. 
      parameters.AccessToken = accessToken; 
      parameters.RefreshToken = refreshToken; 
     } 

     RequestSettings rs = new RequestSettings(applicationName, parameters); 

     return new ContactsRequest(rs);