【发布时间】:2014-11-15 20:34:19
【问题描述】:
我试图在 datagridview 中获取 gmail 消息的信息,但只返回空的 datagridview(即使我删除了“不返回任何内容”行)但是当我在 apis-explorer 中尝试时,我得到 200 ok 响应。我做错了什么?
我使用的代码来自谷歌开发者文档:
Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Services
Imports Google.Apis.Tasks.v1
Imports Google.Apis.Tasks.v1.Data.Tasks
Imports Google.Apis.Tasks.v1.Data
Imports System.Collections.Generic
Imports Google.Apis.Util.Store
Imports System.Threading
Imports System
Imports Google.Apis.Gmail.v1
Imports Google.Apis.Gmail.v1.Data
Public Class Form1
Dim Secrets = New ClientSecrets()
Dim scope = New List(Of String)
Dim initializer = New BaseClientService.Initializer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Secrets.ClientId = "CLIENT_ID"
Secrets.ClientSecret = "CLIENT_SECRET"
End Sub
Public Shared Function GetMessage(service As GmailService, userId As [String], messageId As [String]) As Message
Try
Return service.Users.Messages.Get(userId, messageId).Execute()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
'Return Nothing
End Function
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
Dim userId As String = "GMAIL ACCOUNT"
Dim messageId As String = "MESSAGE ID"
Try
scope.Add(GmailService.Scope.MailGoogleCom)
Dim credential = GoogleWebAuthorizationBroker.AuthorizeAsync(Secrets, scope, "XXXXXXXXXXXX@developer.gserviceaccount.google.com", CancellationToken.None).Result()
initializer.HttpClientInitializer = credential
initializer.ApplicationName = "APP NAME"
Dim service = New GmailService(initializer)
Me.DataGridView1.DataSource = GetMessage(service, userId, messageId)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
【问题讨论】:
-
你能接到任何上班的电话吗?说一些像 label.list() 这样的琐碎事情?我认为它没有抛出异常?如果是这种情况,您能否打印出来并包含收到的整个响应(HTTP 标头和正文)?
标签: vb.net datagridview google-api-dotnet-client gmail-api