- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在查看了多篇在线文章、StackOverflow 和 Yelp Google Group 后,我无法找出 Yelp API 请求产生的无效签名
错误的问题。
这是确切的错误:
{'error': {'text': 'Signature was invalid', 'description': 'Invalid signature. Expected signature base string: [some text here with keys]}}
以及我编写的与之配合的代码:
import rauth
import time
def get_results():
#Obtain these from Yelp's manage access page
consumer_key = ''
consumer_secret = ''
token = ''
token_secret = ''
session = rauth.OAuth1Session(
consumer_key = consumer_key
,consumer_secret = consumer_secret
,access_token = token
,access_token_secret = token_secret)
request = session.get("http://api.yelp.com/v2/search?location=Boston&term=food")
#Transforms the JSON API response into a Python dictionary
data = request.json()
print(data)
session.close()
return data
if __name__=="__main__":
print(get_results())
那么到底是什么导致了这个错误呢?我在这次尝试之前做了一些修改,之前的尝试也遇到了类似的错误;除了有一次我只收到“无效签名”错误,没有“期望签名基本字符串”消息
最佳答案
根据docs还有更多身份验证步骤
提出请求
Each request must contain the following OAuth protocol parameters:
OAuth Parameter Value
oauth_consumer_key Your OAuth consumer key (from Manage API Access).
oauth_token The access token obtained (from Manage API Access).
oauth_signature_method hmac-sha1
oauth_signature The generated request signature, signed with the oauth_token_secret obtained (from Manage API Access).
oauth_timestamp Timestamp for the request in seconds since the Unix epoch.
oauth_nonce A unique string randomly generated per request.
These parameters may be passed in the HTTP (Authorization) header as URL query keys or in the POST data. Generating the OAuth signature is done by applying the HMAC-SHA1 with the oauth_token_secret. You may view your OAuth consumer key at Manage API Access. OAuth libraries are available to generate these requests.
您没有传递所需的oauth_timestamp
或应用HMAC-SHA1,因此您会收到无效签名
错误,上面的文档中清楚地概述了您需要的内容发送。
还有一个实际的python yelp api您可以使用,但要发出请求,您可以使用下面基于 example code: 中的 request
函数的示例。使用 oauth2
和 requests
发出请求:
import requests
import oauth2
def request(url, url_params=None):
consumer_key = ""
consumer_secret = ""
token = ""
token_secret =""
url_params = url_params or {}
consumer = oauth2.Consumer(consumer_key, consumer_secret)
oauth_request = oauth2.Request(method="GET", url=url, parameters=url_params)
oauth_request.update(
{
'oauth_nonce': oauth2.generate_nonce(),
'oauth_timestamp': oauth2.generate_timestamp(),
'oauth_token': token,
'oauth_consumer_key': consumer_key
}
)
token = oauth2.Token(token, token_secret)
oauth_request.sign_request(oauth2.SignatureMethod_HMAC_SHA1(), consumer, token)
signed_url = oauth_request.to_url()
print(u'Querying {0} ...'.format(url))
return requests.get(signed_url).json()
使用你的url输出一整串json,其开头是:
Querying http://api.yelp.com/v2/search?location=Boston&term=food ...
{'region': {'center': {'longitude': -71.05460875, 'latitude': 42.35028894954365}, 'span': {'latitude_delta': 0.0325510910039668, 'longitude_delta': 0.04668455000000904}}, 'total': 8351, 'businesses': [{'name': "Giacomo's Ristorante", 'url': 'http://www.yelp.com/biz/giacomos-ristorante-boston', 'mobile_url': 'http://m.yelp.com/biz/giacomos-ristorante-boston', 'rating_img_url_large': 'http://s3-media2.fl.yelpcdn.com/assets/2/www/img/ccf2b76faa2c/ico/stars/v1/stars_large_4.png', 'phone':
...............................................................
...............................................................
我不确定API是否支持python 3,但上面的代码已经用python3和python2进行了测试,并且工作正常,要安装oauth2
,您可以简单地pip install oauth2
如果您没有安装它,则与 requests 相同。
关于python - Yelp API 产生无效签名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33181226/
我正在使用 yelp api,我能够在 api 的帮助下检索产品评论。 但是,是否也可以使用 Yelp API 发表评论? 我需要从我自己的 php 脚本发布对产品的评论。 最佳答案 不,Yelp A
我知道我们可以使用 Yelp 评论搜索 API 搜索 Yelp 上发布的评论。是否可以使用 Yelp API 发布评论? 最佳答案 我尝试使用 Yelp API 来执行此操作,但当时不受支持。刚刚检查
我的 yelp 按钮的 html 代码是: Check out CurveSetter Tutoring on Yelp(function(d, t) {var g = d.createElement
我意识到 Yelp.com 会在鼠标移动或发生某些事情(单击元素)时进行某种跟踪。这是怎么回事?有图书馆吗?如何在不对性能造成几乎为零的影响的情况下做到这一点? 您可以在下面的 Firebug 中看到
我尝试从 Yelp 数据集挑战网站 (https://www.yelp.com/dataset_challenge) 打开文件。我已经成功做到了,但是,我无法打开文件,因为它没有扩展名。它大约是 4
我正在阅读 API 并单击业务 API 并找到 reviews作为可能的回应。描述中写道, List of up to 1 review snippet for the business 这是否意味着
这个问题在这里已经有了答案: Extracting an attribute value with beautifulsoup (10 个回答) 去年关闭。 从事网络抓取项目以建立我的知识(初学者)。
Yelp 是否提供 API 支持在企业页面上撰写评论?有没有办法从其他网站撰写评论? 最佳答案 不,而且不太可能会有。 全面披露:我在 Yelp 工作了 2 年多。 关于php - Yelp API
在查看了多篇在线文章、StackOverflow 和 Yelp Google Group 后,我无法找出 Yelp API 请求产生的无效签名错误的问题。 这是确切的错误: {'error': {'t
我正在尝试将 Yelp 的 API 与纬度/经度位置结合使用。我使用了 yelp 给出的 javascript 代码,它基本上有一个参数数组,并像这样将值插入其中: parameters.push([
我不知道如何将 target="_blank"属性添加到 5 星评级徽章。 这是我插入网页的内容...来自 yelp。我将最后一行添加到脚本中以尝试添加属性,但它不会接受。我可以,但是让它接受之前的
我正在尝试复制 yelp.com 上的星级评分小部件 - 5 星评分小部件,当您将鼠标悬停在下一颗星上时,所有之前的星星都会改变颜色以匹配活跃的星星。还需要一个显示星级描述的悬停状态。 您可以在此处查
我正在向 yelp api 发送请求以搜索提供纬度和经度的地点,但它给了我以下错误 error = { description = "Invalid signature. Ex
我正在使用 Yelp API,这是搜索方法: func searchWithTerm(term: String, success: (AFHTTPRequestOperation!, AnyObjec
在能够从业务匹配端点检索业务 ID 后,我现在尝试使用该业务 ID 将其汇集到业务详细信息端点。我只是在学习如何调用 API,所以请多多包涵。谢谢! 以下代码使我能够进行业务匹配: 调用API -->
我正在使用 Yelp API 调用业务匹配端点。不幸的是,我遇到了一个我已经玩了一段时间的错误,但似乎找不到它返回以下响应的原因: Optional({ error = {
我一直在尝试从使用 Firefox 时出现(最清晰)的 Yelp 站点徽章中移除底部边框。 div.yelp-biz-badge-script-plain-j3i0uapgqgIpKNS9KA2v4
我正在使用 Business Search Yelp Fusion Api 中的功能。 为什么我似乎无法获取所有业务? 这是一个例子: 当我发出这个请求时,它返回前 20 个结果和 485 的总属性。
我正在尝试使用 Yelp API2 做一些事情 $response = json_decode($data); 它以 PHP 对象格式返回数据,如下所示: stdClass Object ( [reg
我正在连接到 yelp 2.0 Api,我想知道是否有办法检索类别和子类别的列表。我知道该列表可在此处获得 http://www.yelp.com/developers/documentation/c
我是一名优秀的程序员,十分优秀!