Yelp API和AngularJS

 -赵-宾-_879 发布于 2023-01-14 16:04
  • php
  • 我正在尝试使用AngularJS调用Yelp API,但我遇到了麻烦.我一直收到400坏请求,我不知道为什么.

    Yelp API文档:

    http://www.yelp.com/developers/documentation/v2/authentication http://www.yelp.com/developers/documentation/v2/search_api

    包含Yelp API生成密钥的页面:

    http://gyazo.com/fa918329eb0cde18a5db242d1d0b0b0e

    这是我的代码执行调用的片段:

    function randomString(length, chars) {
    var result = '';
    for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
    return result;
    }
    
    app.factory("MyYelpAPI", function($http) {
    return {
        "retrieveYelp": function(name, callback) {
            $http.jsonp("http://api.yelp.com/v2/search?term=food&location=San+Francisco&callback=JSON_CALLBACK",
                {
                    params: {
                        oauth_consumer_key: /* Consumer Key */,
                        oauth_token: /* Token */,
                        oauth_signature_method: "hmac-sha1",
                        oauth_signature: /* Token Secret */,
                        oauth_timestamp: new Date().getTime(),
                        oauth_nonce: randomString(32, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
                    }
                }
            ).success(callback);
        }
    }
    });
    

    Kostya Shkry.. 7

    Yelp API返回您可以在响应正文中找到的非常有用的错误消息.我已经做了3个步骤来提出请求:

      将"hmac-sha1"更改为"HMAC-SHA1".文档说hmac-sha1但它错了.

      oauth_signature与Token Secret不同.您需要分别为每个请求生成oauth_signature.我使用这个库https://github.com/bettiolo/oauth-signature-js

      AngularJS将硬编码的回调参数发送给服务器,因此我们也需要在参数列表中对其进行硬编码.否则我们的签名不正确.

    我的代码:

    
    
        
            
            
        
        
            

    • {{business.name}}

    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有