Appelpitje:
私はマイクロソフトからグラフAPIへのAPI呼び出しを行うためにレトロフィット2を使用するJavaの春のプロジェクトを持っています。私は、認証メールボックスを読んで取得することができる午前/電子メールを読んで。しかし、私は、送信メールに苦しんでいます。
私は、電子メールを送信するために、次のコードを持っています:
権限: Mail.sendが含まれています
private String[] scopes = [
"openid",
"email",
"profile",
"User.Read",
"Mail.Read",
"Mail.Send",
"Mail.ReadWrite",
"Calendars.Read",
"Calendars.ReadWrite",
"Contacts.Read",
"Contacts.ReadWrite",
"offline_access"
];
レトロフィットコール:
@Headers("Content-Type: application/json")
@POST("/v1.0/me/sendMail")
Call<Message> sendMessage(
@Body String messageObject
);
送信された文字列はJSONStringです。
"{\"Message\":{\"toRecipients\":[{\"address\":\"[email protected]\",\"name\":\"[email protected]\"}],\"Body\":{\"ContentType\":\"text/html\",\"Content\":\"value(Email_body)=%3Cp%3Etesttext%3C%2Fp%3E\"},\"Subject\":\"testsubject\"},\"SaveToSentItems\":\"true\"}"
HTTPレスポンス:
<-- 400 Bad Request https://graph.microsoft.com/v1.0/me/sendMail (101ms)
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: application/json
request-id: 94d19c39-4b84-4ee9-98d2-d42d36886e40
client-request-id: 0c9d2c63-28bf-49c4-9ad6-08d81c6fd4b0
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West Europe","Slice":"SliceC","Ring":"5","ScaleUnit":"003","RoleInstance":"AGSFE_IN_27"}}
Strict-Transport-Security: max-age=31536000
Date: Wed, 09 Oct 2019 07:41:54 GMT
{
"error": {
"code": "ErrorInvalidParameter",
"message": "The value of the parameter 'Message' is empty.",
"innerError": {
"request-id": "94d19c39-4b84-4ee9-98d2-d42d36886e40",
"date": "2019-10-09T07:41:54"
}
}
}
<-- END HTTP (253-byte body)
エラーの原因を任意のアイデア?
Appelpitje:
だから私はそれを考え出し、改造2で生のJSONを投稿する正しい方法は次のとおりです。
@Headers("Content-Type: application/json")
@POST("/v1.0/me/sendMail")
Call<Message> sendMessage(
@Body HashMap<String, Object> messageObject
);