我正在开发一个jsf + spring应用程序,并试图使用"/messages“端点获取通过sendgrid发送的所有电子邮件。
我尝试在Java中实现"/messages“端点,类似于示例这里中提到的"/stats”端点。下面是我的代码
我正在应用程序上下文中初始化发送网格对象。
<bean id="sendGrid" class="com.sendgrid.SendGrid">
<constructor-arg name="apiKey" value="my_api_key"/>
</bean>
然后,我在服务bean中使用该对象的自动处理实例,如下所示:
com.sendgrid.Request request = new Request();
try {
request.setMethod(Method.GET);
request.setEndpoint("messages");
request.addQueryParam("limit", "10");
request.addQueryParam("query", "status='processed'");
com.sendgrid.Response response=sendGrid.api(request);
LOGGER.debug(response.getBody());
} catch (IOException e) {
LOGGER.error(ExceptionUtils.getStackTrace(e));
}
但是,我收到以下异常
堆栈跟踪:
java.io.IOException: Request returned status Code 400 Body:{"errors":[{"message":"authorization required"}]}
at com.sendgrid.Client.executeApiCall(Client.java:287)
at com.sendgrid.Client.get(Client.java:163)
at com.sendgrid.Client.api(Client.java:308)
at com.sendgrid.SendGrid.makeCall(SendGrid.java:203)
at com.sendgrid.SendGrid.api(SendGrid.java:225)
因为我可以发送电子邮件和接收统计数据成功。我不认为授权应该是这里的问题。我哪里出错了还是我遗漏了什么?
任何猜测或引导欢迎。谢谢
发布于 2019-05-08 06:53:11
我联系了sendgrid支持小组,这是一个API关键问题。因为我正在尝试这个免费帐户,所以我无法访问那个特定的端点。然而,一旦我升级到一个付费帐户与电子邮件活动添加,它的工作。
发布于 2022-08-25 03:18:24
是的,就像Pranay说的,你必须购买名为“扩展电子邮件活动历史”的外接程序(一旦您使用发送网格登录,请查找)。
设置Account_Details→Product_Page→,向下滚动到加载项→,然后选择“扩展电子邮件活动历史”并添加到您的计划中。(目前的附加费用是每月12美元*&我不明白*的意思)
您可以检查下面的sendgrid代码片段链接
https://docs.sendgrid.com/api-reference/e-mail-activity/filter-all-messages
希望这能有所帮助
主键
https://stackoverflow.com/questions/55927911
复制相似问题