在多个区域中使用生成的页面access_token

时间:2017-04-21 03:54:54

标签: facebook facebook-graph-api lambda facebook-messenger

我正在尝试使用manage_pages权限将我的facebook聊天机器人订阅到用户的页面。

我已经批准了我的应用程序,但我遇到了麻烦,因为令牌是在浏览器中生成的(在巴西),但我将它发送到美国西部2的aws lambda,我收到以下错误

\' manage_pages \'必须在模拟用户页面之前授予权限。

在我的测试中,我在我的机器中运行订阅过程,并在AWS Lambda(US West 2)中重用此令牌。在研究和进行一些测试后,我发现它只是在美国不起作用,在巴西它起作用。 使用在该过程中生成的相同令牌,我运行以下测试。

var request = require("request")
request.post("https://graph.facebook.com/v2.9/me/messages", {
    qs: {
        access_token: "GENERATED TOKEN"
    },
    json: {
        "recipient": {
            "id": "USER_ID"
        },
        "message": {
            "text": "hello!"    
        }
    }
},function(e){
    if(e){
        return console.log("ERROR",e)
    }
    console.log("FINISH",arguments)
})

当我使用互联网运行时,它运行正常,但如果我在迈阿密使用VPN,则会发生错误。

我认为它与facebook所做的数据复制有关,但我怎样才能让这个令牌可以被美国地区访问?

修改

我在使用VPN在线启动Facebook登录过程时发现此错误:

facebookerror

我在我的应用中没有找到任何限制,我可以在哪里查看?

1 个答案:

答案 0 :(得分:0)

问题出现了,因为我的应用程序只对巴西有限制,我将美国加入限制并且有效。 可以在“设置”中更改限制 - >高级应用限制