Facebook Graph api,读取消息发送到具有页面访问令牌的页面

时间:2017-07-02 14:36:48

标签: facebook facebook-graph-api

我创建了一个Graph API Web挂钩,可以在页面上进行对话。 当我将消息发送到与此主体相关联的页面时,我在我的网络挂钩上得到了ping。

{"entry":[
  {"changes":
   [
    {
     "field":"conversations",
     "value":{
       "thread_id":"t_mid.$cAASnBD_EQdhjNJRBZVdA0750e5Q_",
       "page_id":<page-id>,
       "thread_key":"t_100018072547807"
      }
    }
   ],
   "id":"<page-id",
   "time":1499003405
  }
],
"object":"page"}

我使用帖子中提到的thread-id来获取带有url的线程中的消息

https://graph.facebook.com/v2.9/t_mid.$cAASnBD_EQdhjNJRBZVdA0750e5Q_/messages?access_token=<page_access_token>

这是我对此的反应

    {
    "data": [
        {
            "id": "m_mid.$cAASnBD_EQdhjNJVyd1dA1AqR4yFf",
            "created_time": "2017-07-02T12:39:31+0000"
        },
        ...
    ],
    "paging": {
        "cursors": {
            "before": "some-big-text",
            "after": "some-big-text"
        }
    }
}

因此,我从数据数组中获取一条消息,其中包含thread_id "m_mid.$cAASnBD_EQdhjNJVyd1dA1AqR4yFf"

并发出以下请求https://graph.facebook.com/v2.9/m_mid.$cAASnBD_EQdhjNNYLBldA5DEDHRgj?access_token=<page-access-token>,希望我能够阅读该邮件。

但回应只是

{
   "id": "m_mid.$cAASnBD_EQdhjNNYLBldA5DEDHRgj",
   "created_time": "2017-07-02T13:50:05+0000"
}

并且正文中没有留言文字。

从用户

请求了以下权限
public_profile, manage_pages, publish_pages, read_page_mailboxes, pages_messaging

我错过了什么?如何阅读用户发送的带有消息Id?

的消息

1 个答案:

答案 0 :(得分:2)

您获取该会话消息的请求看起来没问题,但您也必须添加您喜欢的字段以获取请求。

所以请求应该是这样的:

u = rand(1,4)>0.5
for i = 1:size(u,2)
    if u(:,1)==0 && u(:,2)==0
       u1 = [1 1 u(:,3) u(:,4)];
    elseif u(:,1)==1 && u(:,2)==0
       u1 = [0 1 u(:,3) u(:,4)];
    elseif u(:,1)==0 && u(:,2)==1
       u1 = [1 0 u(:,3) u(:,4)];
    elseif u(:,1)==1 && u(:,2)==1
       u1 = [0 0 u(:,3) u(:,4)];
    end

    if u(:,1)==0 && u(:,3)==0
       u2 = [1 u(:,2) 1 u(:,4)];
    elseif u(:,1)==1 && u(:,3)==0
       u2 = [0 u(:,2) 1 u(:,4)];
    elseif u(:,1)==0 && u(:,3)==1
       u2 = [1 u(:,2) 0 u(:,4)];
    elseif u(:,1)==1 && u(:,3)==1
       u2 = [0 u(:,2) 0 u(:,4)];
    end

    if u(:,1)==0 && u(:,4)==0
       u3 = [1 u(:,2) u(:,3) 1];
    elseif u(:,1)==1 && u(:,4)==0
       u3 = [0 u(:,2) u(:,3) 1];
    elseif u(:,1)==0 && u(:,4)==1
       u3 = [1 u(:,2) u(:,3) 0];
    elseif u(:,1)==1 && u(:,4)==1
       u3 = [0 u(:,2) u(:,3) 0];
    end

    if u(:,2)==0 && u(:,3)==0
       u4 = [u(:,1) 1 1 u(:,4)];
    elseif u(:,2)==1 && u(:,3)==0
       u4 = [u(:,1) 0 1 u(:,4)];
    elseif u(:,2)==0 && u(:,4)==1
       u4 = [u(:,1) 1 0 u(:,4)];
    elseif u(:,2)==1 && u(:,3)==1
       u4 = [u(:,1) 0 0 u(:,4)];
    end

    if u(:,2)==0 && u(:,4)==0
        u5 = [u(:,1) 1 u(:,3) 1];
    elseif u(:,2)==1 && u(:,4)==0
        u5 = [u(:,1) 0 u(:,3) 1];
    elseif u(:,2)==0 && u(:,4)==1
        u5 = [u(:,1) 1 u(:,3) 0];
    elseif u(:,2)==1 && u(:,4)==1
        u5 = [u(:,1) 0 u(:,3) 0];
    end

    if u(:,3)==0 && u(:,4)==0
       u6 =[u(:,1) u(:,2) 1 1];
    elseif u(:,3)==1 && u(:,4)==0
       u6 =[u(:,1) u(:,2) 0 1];
    elseif u(:,3)==0 && u(:,4)==1
       u6 =[u(:,1) u(:,2) 1 0];
    elseif u(:,3)==1 && u(:,4)==1
       u6 =[u(:,1) u(:,2) 0 0];
    end
 end