2016-05-21 5 views
0

私は自分のアプリケーションにGmailのAPIからのプッシュ通知を取得するには、セットアップに従っている:https://developers.google.com/gmail/api/guides/pushGoogleエンドポイントメソッド内のHTTP投稿リクエストからJSONを取得する方法は?ここに示したよう

私はGmailからのHTTPのPOSTのコールバック(ウェブフックプッシュ)を受信するために、以下に示すGoogleのエンドポイント法を設定しています。これは動作しており、新しい電子メールが呼び出されています。私は、私は次のように定義したNotificationMessageオブジェクトを使用してこのデータを取得しようとしています

POST https://yourserver.example.com/yourUrl 
Content-type: application/json 

{ 
    message: 
    { 
    // This is the actual notification data, as base64url-encoded JSON. 
    data: "eyJlbWFpbEFkZHJlc3MiOiAidXNlckBleGFtcGxlLmNvbSIsICJoaXN0b3J5SWQiOiAiMTIzNDU2Nzg5MCJ9", 

    // This is a Cloud Pub/Sub message id, unrelated to Gmail messages. 
    message_id: "1234567890", 
    } 

    subscription: "projects/myproject/subscriptions/mysubscription" 
} 

@ApiMethod(
      name = "myhandler", 
      path = "_ah/push-handlers/myhandler", 
      httpMethod = ApiMethod.HttpMethod.POST 
    ) 
    public void myhandler(NotificationMessage notificationMessage) throws IOException { 

     //process message 

    } 

さて、Gmailからのコールバックは、リクエストのHTTP POSTボディにJSON構造下に送信しますこの:

public class NotificationMessage { 
    JSONObject message; 

    public JSONObject getMessage() { 
     return message; 
    } 

    public void setMessage(JSONObject message) { 
     this.message = message; 
    } 
} 

がどのように私は、このクラスを変更したり、また、上記のHTTP POST要求から1レベル深いmessage.data JSON値を取得するために私のエンドポイント法を変更する必要がありますか?

私は同様の質問をチェックアウトしましたが、POSTリクエストのJSON内、具体的にはGoogle Java Endpointメソッド内に埋め込まれた値を取得する方法を示すものは見つかりませんでした。

提案がありますか?この上

答えて

0

アップデートは:

一方、http://www.jsonschema2pojo.org/の助けを借りて、私は質問に言及したJSONデータに対応するJavaクラスを取得することができたと私は、エンドポイントのAPIでこれらを使用していました。今はうまくいく!

関連する問題