Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MesageID Android Gmail Api_Android_Gmail_Gmail Api - Fatal编程技术网

MesageID Android Gmail Api

MesageID Android Gmail Api,android,gmail,gmail-api,Android,Gmail,Gmail Api,如何在Android中使用Gmail Api获取阅读特定邮件的messageID Gmail Api的users.messages.get方法需要两个参数: 将作为用户名的userId messageID 那么,如何获取messageID以及messageID究竟是什么呢?要获取messageID,首先需要使用一些可选参数。这将返回messageid,它们只是表示消息的唯一字符串 常规http请求的示例如下: 从我自己发送的带有收件箱标签的邮件中只给我一个messageId userId = m

如何在Android中使用Gmail Api获取阅读特定邮件的
messageID

Gmail Api的
users.messages.get
方法需要两个参数:

  • 将作为用户名的
    userId
  • messageID

  • 那么,如何获取
    messageID
    以及
    messageID
    究竟是什么呢?

    要获取
    messageID
    ,首先需要使用一些可选参数。这将返回
    messageid
    ,它们只是表示消息的唯一字符串

    常规http请求的示例如下:

    从我自己发送的带有收件箱标签的邮件中只给我一个
    messageId

    userId = me
    labelIds = INBOX
    maxResults = 1
    q = from:me
    
    GET https://www.googleapis.com/gmail/v1/users/me/messages?labelIds=INBOX&maxResults=1&q=from%3Ame
    
    响应:

    {
     "messages": [
      {
       "id": "14f8d57248451a6c", // This is the messageId!
       "threadId": "14f8d57248451a6c"
      }
     ],
     "nextPageToken": "04016634599566360443",
     "resultSizeEstimate": 2
    }
    
    {
     "id": "14f8d57248451a6c",
     "threadId": "14f8d57248451a6c",
     "labelIds": [
      "SENT",
      "INBOX",
      "IMPORTANT"
     ],
     "snippet": "",
     "historyId": "563949",
     "internalDate": "1441185342000",
     "payload": {
      "mimeType": "multipart/mixed",
      "filename": "",
      "headers": [
       {
        "name": "MIME-Version",
        "value": "1.0"
       },
       {
        "name": "Received",
        "value": "by 10.28.99.138 with HTTP; Wed, 2 Sep 2015 02:15:42 -0700 (PDT)"
       },
       {
        "name": "Date",
        "value": "Wed, 2 Sep 2015 11:15:42 +0200"
       }, ...
    
    然后,我在get方法中使用此messageId来获取实际内容:

    GET https://www.googleapis.com/gmail/v1/users/me/messages/14f8d57248451a6c
    
    响应:

    {
     "messages": [
      {
       "id": "14f8d57248451a6c", // This is the messageId!
       "threadId": "14f8d57248451a6c"
      }
     ],
     "nextPageToken": "04016634599566360443",
     "resultSizeEstimate": 2
    }
    
    {
     "id": "14f8d57248451a6c",
     "threadId": "14f8d57248451a6c",
     "labelIds": [
      "SENT",
      "INBOX",
      "IMPORTANT"
     ],
     "snippet": "",
     "historyId": "563949",
     "internalDate": "1441185342000",
     "payload": {
      "mimeType": "multipart/mixed",
      "filename": "",
      "headers": [
       {
        "name": "MIME-Version",
        "value": "1.0"
       },
       {
        "name": "Received",
        "value": "by 10.28.99.138 with HTTP; Wed, 2 Sep 2015 02:15:42 -0700 (PDT)"
       },
       {
        "name": "Date",
        "value": "Wed, 2 Sep 2015 11:15:42 +0200"
       }, ...
    

    如果您想使用一个好的库而不是自己处理请求,则可以从中获得很大帮助。

    您可以列出所有消息,并从中获得MessageID

    public List<Message> listAllMessages(Gmail service, String userId
    ) throws IOException {
    
        ListMessagesResponse response = service.users().messages().list(userId).execute();
        if (response == null || response.isEmpty())
            return null;
    
        List<Message> messages = new ArrayList<Message>();
        messages.addAll(response.getMessages());
    
        int totalMsgs = messages.size();
        Message message;
        if (totalMsgs > 0) {
            for (int i = 0; i < totalMsgs; i++) { 
                message = messages.get(i); //message.getId() is what you want
            }
        }
        return messages;
    }
    
    public List listalmessages(Gmail服务,字符串userId
    )抛出IOException{
    ListMessagesResponse response=service.users().messages().list(userId.execute();
    if(response==null | | response.isEmpty())
    返回null;
    列表消息=新建ArrayList();
    messages.addAll(response.getMessages());
    int totalMsgs=messages.size();
    信息;
    如果(总MSGS>0){
    对于(inti=0;i
    user.messages.list:)