简体   繁体   English

使用Yelp API的OAuth错误

[英]OAuth Error using Yelp API

I have a sample app that is using Yelp to retrieve reviews and contact information. 我有一个使用Yelp检索评论和联系信息的示例应用程序。 It was working perfectly until this week. 直到本周为止,它一直运转良好。

I'm now getting this error: Uncaught ReferenceError: OAuth is not defined 我现在收到此错误:未捕获的ReferenceError:未定义OAuth

function addmarker(lat,lng, id, name, comments){

var yelpcontent = '<h4>' + name + '</h4>';
var phone = '';
var address = '';
var city = '';
var state = '';
var zip = '';
var rating = '';

var terms = name;
var near = 'Indianapolis,IN';
var cll = lat + "," + lng;
var accessor = {
    consumerSecret: auth.consumerSecret,
    tokenSecret: auth.accessTokenSecret
};
parameters = [];
parameters.push(['term', name]);
parameters.push(['location', 'Indianapolis, IN']);
parameters.push(['cll', cll]);
parameters.push(['callback', 'cb']);
parameters.push(['oauth_consumer_key', auth.consumerKey]);
parameters.push(['oauth_consumer_secret', auth.consumerSecret]);
parameters.push(['oauth_token', auth.accessToken]);
parameters.push(['oauth_signature_method', 'HMAC-SHA1']);
var message = {
    'action': 'http://api.yelp.com/v2/search',
    'method': 'GET',
    'parameters': parameters
};
OAuth.setTimestampAndNonce(message);
OAuth.SignatureMethod.sign(message, accessor);
var parameterMap = OAuth.getParameterMap(message.parameters);
parameterMap.oauth_signature = OAuth.percentEncode(parameterMap.oauth_signature)
$.ajax({
    'url': message.action,
    'data': parameterMap,
    'cache': true,
    'dataType': 'jsonp',
    'type' : 'get',
    'timeout': 5000,
    'success': function(data, textStats, XMLHttpRequest) {


        address = data['businesses'][0].location.address;
        city = data['businesses'][0].location.city;
        state = data['businesses'][0].location.state_code;
        zip = data['businesses'][0].location.postal_code;
        phone = data['businesses'][0].display_phone;
        rating = data['businesses'][0].rating_img_url_small;
        yelpcontent = yelpcontent + '<p>' + address + '<br/>' + city + ', ' + state + '  ' + zip + '<br/>' + phone + '</p><p><strong>Yelp Rating</strong></p><p><img src=' + rating + '></p><p><strong>Personal Review</strong></p><p>' + comments + '</p>';

    },
    'error': function(data, textStats, XMLHttpRequest) {
        console.log(name + ' ' + 'did not work');
        console.log(XMLHttpRequest);
        yelpcontent = yelpcontent + '<p>' + comments + '</p>';
    }


});

Can someone please tell me what I'm doing wrong? 有人可以告诉我我在做什么错吗?

OAuth is not defined by default in Javascript. 默认情况下,Java中未定义OAuth。

You have to add it to your page. 您必须将其添加到页面。

Use this code: 使用此代码:

    <script type="text/javascript" src="http://oauth.googlecode.com/svn/code/javascript/oauth.js"></script>
    <script type="text/javascript" src="http://oauth.googlecode.com/svn/code/javascript/sha1.js"></script>

You can see a full example here . 您可以在此处看到完整的示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM