此代码显示标签我不知道它做了什么或给了什么。 代码正在运行。
但现在我想在listBox1中列出,让我们说一下我在gmail listBox中的最后50封电子邮件。 我已经创建了一个client_secrets.json文件,在文件中我有我的gmail帐户... my@gmail.com以及客户端密码和客户端ID。
这是我尝试过的但却出现了一些错误:
@media only screen and (max-width: 500px) {
.btn-sq {
width: 50px !important;
height: 50px !important;
font-size: 10px;
background-color: yellow;
}
}
第一个错误是在线:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Google.Apis.Gmail.v1.Data;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using System.Threading;
using System.IO;
using Google.Apis.Util.Store;
namespace Google_Gmail
{
public partial class Form1 : Form
{
static string[] Scopes = { GmailService.Scope.GmailReadonly };
static string ApplicationName = "Youtube Uploader";
public Form1()
{
InitializeComponent();
ListMessages(GmailService,)
}
private GmailService GmailService()
{
UserCredential credential;
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Gmail API service.
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define parameters of request.
UsersResource.LabelsResource.ListRequest request = service.Users.Labels.List("me");
return service;
}
public static List<Google.Apis.Gmail.v1.Data.Message> ListMessages(GmailService service, String userId, String query)
{
List<Google.Apis.Gmail.v1.Data.Message> result = new List<Google.Apis.Gmail.v1.Data.Message>();
UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
request.Q = query;
do
{
try
{
ListMessagesResponse response = request.Execute();
result.AddRange(response.Messages);
request.PageToken = response.NextPageToken;
}
catch (Exception e)
{
Console.WriteLine("An error occurred: " + e.Message);
}
} while (!String.IsNullOrEmpty(request.PageToken));
return result;
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
在GmailService上我收到错误:
错误1'Google_Gmail.Form1.GmailService()'是'方法',在给定的上下文中无效
第二个是当我将方法ListMessages作为用户ID和查询调用时,我应该在构造函数中添加什么? userid是我在json文件中的客户端ID?什么应该是查询?
答案 0 :(得分:0)
经过一些谷歌搜索后我发现了这个
首先你需要获得list of messages
如您所见here Message
对象包含消息的不可变ID,之后使用带有消息列表的foreach循环的get method来检索最后50个电子邮件地址。< / p>
所有三个链接都有正确的.net文档