我正尝试使用Google Java API服务基于Gmail REST API发送邮件。 我通过Google Develover Consoleconfiguration了一个应用程序客户端,并下载了p12和json文件。 我已经使用这个示例程序, https://developers.google.com/gmail/api/guides/sending#sending_messages … 此示例工作,但这是基于GoogleAuthorizationCodeFlow。 我只想从服务器到服务器,直接调用,而不是打开浏览器来获取访问令牌…我得到它(访问令牌),但最后我收到一个错误的请求….为什么? ? 我没有收到更多的信息比“坏请求”和“先决条件失败” 基于这个我遵循下面的步骤: 第一步 :根据我的客户帐户邮件和p12生成的文件创build一个GoogleCredential对象: GoogleCredential credential = new GoogleCredential.Builder().setTransport(new NetHttpTransport()) .setJsonFactory(new JacksonFactory()) .setServiceAccountId(serviceAccountUserEmail) .setServiceAccountScopes(scopes) .setServiceAccountPrivateKeyFromP12File( new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH)) .build(); 在这里,我必须指出,我有很多问题,而不是ClientMail ClientID。 它必须使用@ developer.gserviceaccount.com帐户而不是.apps.googleusercontent.com。 如果你不发送这个参数确定,你会得到一个“无效授予”的错误。 这在这里解释: https : //developers.google.com/analytics/devguides/config/mgmt/v3/mgmtAuthorization 第二步 :根据凭据创buildGmail服务: Gmail gmailService = new Gmail.Builder(httpTransport, jsonFactory, credential) .setApplicationName(APP_NAME) .build(); 第三步从MimmeMessage创buildGoogle原始消息: private static […]
我在Gmail PHP API中遇到了麻烦。 我想要检索电子邮件的正文内容,但我可以检索它只有具有附件的电子邮件! 问题是为什么? 这是我的代码到目前为止: // Authentication things above… $client = getClient(); $gmail = new Google_Service_Gmail($client); $list = $gmail->users_messages->listUsersMessages('me', ['maxResults' => 1000]); while ($list->getMessages() != null) { foreach ($list->getMessages() as $mlist) { $message_id = $mlist->id; $optParamsGet2['format'] = 'full'; $single_message = $gmail->users_messages->get('me', $message_id, $optParamsGet2); $threadId = $single_message->getThreadId(); $payload = $single_message->getPayload(); $headers = $payload->getHeaders(); $parts = […]
假设我有一个需要在后台服务中访问云端硬盘文件的networking应用程序。 它将拥有自己正在访问的文件,也可以在拥有者共享文档的Google帐户中运行。 我明白,我的应用程序需要一个刷新令牌,但我不想写代码来获取,因为我只会做一次。 NB。 这不是使用服务帐户。 该应用将在传统的Google帐户下运行。 我不是说这是一个好主意,在某些情况下,服务帐户是一种有效的方法。 然而,使用Oauth Playground模拟应用程序的技术可以节省大量的重复劳动。