Pinterest拒绝从Google App Engine访问(403)

时间:2015-10-22 18:12:33

标签: google-app-engine pinterest

使用oauth accessToken,我可以通过以下方式检索用户的信息:

https://api.pinterest.com/v1/me/?fields=first_name%2Cid%2Clast_name%2Curl%2Cusername%2Cimage&access_token=xxxx
从桌面甚至ec2返回的

{
   "data": {
   "username": "yyyt",
   "first_name": "yyyr",
   "last_name": "",
   "url": "https:\/\/www.pinterest.com\/yyyt\/",
   "image": {
      "60x60": {
        "url": "https:\/\/s-passets-cache-ak0.pinimg.com\/images\/user\/default_60.png",
        "width": 60,
        "height": 60
      }
    },
    "id": "1234567890"
  }
}

但是,当从appengine进行相同的查询时,将返回403错误,其中包含详细信息:

{
    "message": "Forbidden",
    "status": 403
}

我找不到任何有关Google AppEngine可能被特别阻止的信息,并且由于他们的API已经过了Beta,我不确定原因是什么。

这个早先的问题:Pinterest API - returning 403 on EC2 Instance建议他们阻止ec2,因为api仍然是非正式的支持,但ec2访问确实现在看起来很好,所以我不确定为什么他们会阻止谷歌。

有人可以建议不涉及代理的解决方法,或者让我知道可能禁止访问的原因吗?

1 个答案:

答案 0 :(得分:1)

  

或者告诉我可能禁止访问的原因?

不幸的是,当我尝试通过App Engine访问Pinterest网站(而不是API)时,我遇到了同样的问题。

查看Pinterest在App Engine发出HTTP请求后返回的403错误页面,其原因似乎是Pinterest并不喜欢机器人并故意拒绝App Engine或App Engine开发服务器的HTTP请求

当尝试通过CURL访问Pinterest时,我注意到Pinterest拒绝了App Engine HTTP请求标头中包含字符串User-Agent的所有HTTP请求,但Pinterest很乐意接受任何其他(随机)用户 - 代理字符串。

由于App Engine(如documentation中所述)会自动将字符串"AppEngine-Google (+http://code.google.com/appengine; appid: APPID)"附加到User-Agent HTTP请求标头,因此我怀疑没有办法绕过这一点。