Gmail REST API:400错误的请求+失败的前提条件

我正在尝试使用Google Java API服务基于Gmail REST API发送邮件。我已经通过Google Develover Console配置了应用程序客户端,并下载了p12和json文件。


我已经使用了以下示例程序,https://developers.google.com/gmail/api/guides/sending#sending_messages ...


该示例有效,但这是基于GoogleAuthorizationCodeFlow的。我只想在服务器之间进行工作,直接调用,而不是打开浏览器来获取访问令牌...而我得到了它(访问令牌),但最终我收到了错误的请求。...为什么? ?我收到的不仅仅是“错误的请求”和“前提条件失败”的更多信息


基于此,我执行以下步骤:


第一步:根据我的客户帐户邮件和p12生成的文件创建一个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();

在这里我必须指出,我在使用ClientID而不是ClientMail时遇到很多问题。它必须使用@ developer.gserviceaccount.com帐户而不是.apps.googleusercontent.com。如果您没有发送此参数ok,则会收到“ INVALID GRANT”错误。对此进行了说明:https : //developers.google.com/analytics/devguides/config/mgmt/v3/mgmtAuthorization


第二步:根据凭据创建Gmail服务:


Gmail gmailService = new Gmail.Builder(httpTransport,

                                              jsonFactory,

                                              credential)

                                            .setApplicationName(APP_NAME)

                                                .build();


第五步:执行后获取结果...这里我收到异常:

线程“主”中的异常


com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request

{

  "code" : 400,

  "errors" : [ {

    "domain" : "global",

    "message" : "Bad Request",

    "reason" : "failedPrecondition"

  } ],

  "message" : "Bad Request"

}

    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)

知道什么是错的或前提条件失败了吗?


桃花长相依
浏览 1230回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java