java中的电子邮件集成钩子

java中的电子邮件集成钩子,java,google-app-engine,pivotaltracker,Java,Google App Engine,Pivotaltracker,我们有一个简单的要求,即当电子邮件发送到我们的组织id时,能够在PivotalTracker中创建一个故事,如saybugs@my-org.com 我可以找到一些或基于ruby的包装器,但java中没有可以在我们的GAE应用程序上运行的东西。如果存在此类解决方案,有何建议 这里有一些api的提及 代码在curl中 curl -H "X-TrackerToken: $TOKEN" -X POST -H "Content-type: application/xml" \ -d "<st

我们有一个简单的要求,即当电子邮件发送到我们的组织id时,能够在PivotalTracker中创建一个故事,如saybugs@my-org.com

我可以找到一些或基于ruby的包装器,但java中没有可以在我们的GAE应用程序上运行的东西。如果存在此类解决方案,有何建议

这里有一些api的提及 代码在curl中

curl -H "X-TrackerToken: $TOKEN" -X POST -H "Content-type: application/xml" \
    -d "<story><story_type>feature</story_type><name>Fire torpedoes</name><requested_by>James Kirk</requested_by></story>" \
    http://www.pivotaltracker.com/services/v3/projects/$PROJECT_ID/stories
curl-H“X-TrackerToken:$TOKEN”-X POST-H“内容类型:application/xml”\
-d“特技火力鱼雷詹姆斯·柯克”\
http://www.pivotaltracker.com/services/v3/projects/$PROJECT\u ID/故事

不确定如何在java中实现这一点?

您需要做两件事:

  • 在盖伊

  • 通过URLFetch发出POST请求:

    String pivotalUrl = "http://www.pivotaltracker.com/services/v3/projects/"+projectID+"/stories"
    
    String body = "<story><story_type>feature</story_type><name>Story name</name><requested_by>James Kirk</requested_by></story>"
    
    URLFetchService fetchService = URLFetchServiceFactory.getURLFetchService();
    HTTPRequest request =  new HTTPRequest(pivotalUrl, HTTPMethod.POST, FetchOptions.Builder.withDeadline(30));
    request.addHeader(new HTTPHeader("X-TrackerToken","putTokenHere"));
    request.addHeader(new HTTPHeader("Content-type","application/xml"));
    
    HTTPResponse response = fetchService.fetch(request);
    if (response.getResponseCode() != 200) {
        // something went wrong
    }
    
    String pivotalUrl=”http://www.pivotaltracker.com/services/v3/projects/“+projectID+”/stories”
    字符串正文=“featureStory名称James Kirk”
    URLFetchService fetchService=URLFetchServiceFactory.getURLFetchService();
    HTTPRequest请求=新的HTTPRequest(pivotalUrl、HTTPMethod.POST、FetchOptions.Builder.withDeadline(30));
    addHeader(新的HTTPHeader(“X-TrackerToken”、“Puttokenher”);
    addHeader(新的HTTPHeader(“内容类型”、“应用程序/xml”);
    HTTPResponse response=fetchService.fetch(请求);
    if(response.getResponseCode()!=200){
    //出了点问题
    }
    

  • 我将主体添加为request.setPayload(body.getBytes());此外,这些东西是否可以在本地服务器上进行测试,因为我听说很多API只是在打印响应代码时进行模拟,所以我发现它返回时无法创建故事,因为响应代码是:422,根据wiki的说法,这意味着422个不可处理的实体(WebDAV;RFC 4918)。请求格式正确,但由于语义错误而无法遵循。有什么建议吗?是的,您可以模拟从dev服务器发送电子邮件:
    http://localhost:8080/_ah/admin/inboundmail
    很抱歉你误会了我。。。当我试图通过url获取发送故事时,我看到上面提到的422错误。关于为什么会发生这种情况有什么帮助吗?我还发布了我的确切代码,你应该能够手动执行Http请求。当它工作时,然后使用URLFetch将其放入代码中。