Как извлечь четырехугольный access_token, сохраненный в DOM, в качестве ссылки, чтобы я мог использовать его для вызовов API? - PullRequest
0 голосов
/ 25 июня 2011

По сути, если я в 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); или запустить вызов API Foursquare я получаю следующие ошибки

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, который я могу использовать? Уже несколько часов бьюсь, и по какой-то причине пробовал все мои методы исследования, это меня окутывает. Спасибо всем за помощь до сих пор, я действительно надеюсь пройти это!

1 Ответ

1 голос
/ 17 декабря 2011

Браузеры изначально реализуют глобальную функцию JSON.parse (), и если по какой-то причине это не работает, вы можете использовать функцию parseJSON () jQuery.

Вот как это работает.Допустим, ваш JSON-объект имеет следующий формат:

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

Затем вы можете получить доступ к элементу "URL", используя JSON.parse (), например:

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

(I 'Я не знаком с 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;
    });
});

Надеюсь, это поможет!

...