使用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访问确实现在看起来很好,所以我不确定为什么他们会阻止谷歌。
有人可以建议不涉及代理的解决方法,或者让我知道可能禁止访问的原因吗?
答案 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请求标头,因此我怀疑没有办法绕过这一点。