如何提取作为链接保存到 DOM 的 foursquare access_token 以便我可以将其用于 API 调用?

发布于 2024-11-17 06:16:49 字数 1017 浏览 2 评论 0原文

本质上,如果我在 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 中?我已经奋斗了几个小时,并尝试了我所有的研究技术,但出于某种原因,这个技术却让我无法理解。感谢大家到目前为止的帮助,我真的希望能够通过这个!

Essentially, if I'm in Firebug and look at the net objects I see the status 200

If I click on the JSON tab I can see my access_token, but how do I extract it from there so I can use for API calls?

Here's the latest code tried.

var jsonUrl = url +"&callback=?";
var access_token;

$("#getJSON").click(function() {
    $.getJSON(jsonUrl, { dataType: "JSONP" }, function(json){ 
        ...
        access_token = json.access_token;
        ...
    });
});

also tried:

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

But when I try and alert(access_token); or run a foursquare api call I get the following errors

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)

I feel like its ready and waiting for me to call it, but how on earth do I print it from the Dom into a var that I can use? Been fighting for hours and been trying all my research techniques for some reason this one's elluding me. Thanks for everyone's help so far, I'm really hoping to get passed this!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我是有多爱你 2024-11-24 06:16:49

浏览器本身实现了一个全局函数 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;
    });
});

希望有帮助!

Browsers natively implement a global function JSON.parse(), and if for some reason that doesn't work you can use jQuery's parseJSON() function.

Here's how it works. Let's say your JSON object has the following format:

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

Then you can access the "URL" element by using JSON.parse() like so:

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

(I'm unfamiliar with Foursquare but it should look similar, and you can do console.log(json) to see its structure.)

So your code might look something like this:

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

Hope that helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文