如何提取保存到DOM的四方形access_token作为链接,以便将其用于API调用

How do I extract a foursquare access_token saved to DOM as a link so I can use it for API calls?

本文关键字:链接 token API 调用 用于 保存 提取 何提取 DOM 四方 access      更新时间:2023-09-26

本质上,如果我在Firebug中查看网络对象,我会看到状态200

如果我点击JSON选项卡,我可以看到我的access_token,但我如何从中提取它,以便用于API调用?

这是尝试过的最新代码。

var jsonUrl = url +"&callback=?";
var access_token;
$("#getJSON").click(function() {
    $.getJSON(jsonUrl, { dataType: "JSONP" }, function(json){ 
        ...
        access_token = json.access_token;
        ...
    });
});

也尝试过:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'callback',
  url: url,
  success: function (json) {
    console.log(json.access_token);
  },
});

但当我尝试并提醒(access_token)时;或者运行一个foursquare api调用我得到以下错误

Resource interpreted as Script but transferred with MIME type application/json. 
Uncaught SyntaxError: Unexpected token : checkinsGET https://api.foursquare.com/v2/users/self/checkins?oauth_token=undefined&format=json 401 (Unauthorized)

我觉得它已经准备好了,正在等待我调用它,但我到底该如何将它从Dom打印到我可以使用的var中呢?我已经奋斗了几个小时,出于某种原因,我一直在尝试我所有的研究技术。感谢大家到目前为止的帮助,我真的希望能通过这个!

浏览器本机实现了一个全局函数JSON.parse(),如果由于某种原因无法实现,则可以使用jQuery的parseJSON()函数。

以下是它的工作原理。假设您的JSON对象具有以下格式:

{
    Status: "Success",
    Resource: {
        Name: "Person's Name",
        URL: "http://blahblahblah.com/extrastuffhere?querystuff=here"}}

然后,您可以使用JSON.parse()访问"URL"元素,如下所示:

var url = JSON.parse(json).Resource.URL;

(我不熟悉Foursquare,但它看起来应该很相似,你可以用console.log(json)来查看它的结构。)

所以你的代码可能看起来像这样:

$("#getJSON").click(function() {
    $.getJSON(jsonUrl, { dataType: "JSONP" }, function(json){ 
        var parsed = JSON.parse(json);
        console.log(parsed);
        access_token = parsed.access_token;
    });
});

希望能有所帮助!