-4

我正在尝试使用 twitter api 获取用户信息。jquery代码如下:

 <script type="text/javascript">
        function GetUser() {

            $.ajax({
                type: "GET",
                url: "http://api.twitter.com/1/users/show.json?user_id=id&include_entities=true&callback=?",
                contentType: "application/json; charset=utf-8",
                dataType: "jsonp",
                cache:true,
                timeout:8000,
                success: function (json) {
                    alert("Successfull");
                },
               error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.responseText);
                alert(thrownError);
            }               
            });
    }
    </script>

xhr.responseText:undefined throwedError:[object Error] 和 html 代码:

<input type="submit" value="Submit" onclick="GetUser();" />
4

3 回答 3

1

首先你的网址不正确。代替

user_id=id

在您的 URL 中,您必须使用 id 的实际值(在您的情况下,id 只是占位符)。例如:

user_id=82193320

这会给你我的 twitter 用户 (uwe_guenther) 的数据。

您可以在此处轻松查找 Twitter ID:

http://mytwitterid.com/

如果您只想按屏幕名称查找用户数据,您可以使用:

screen_name=uwe_guenther

反而。

您可以在此处找到 Twitter API 描述:

https://dev.twitter.com/docs/api/1/get/users/show

我附上了一个工作示例,用于在此处通过 user_id 查找 screen_name 和通过 screen_name 查找 user_id:

可以在此处找到带有以下示例的jsFiddle :http: //jsfiddle.net/uwe_guenther/EvJBu/

索引.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <input id='userIdTextField' type='text' placeholder='user_id'/>
    <input id='userIdSubmitButton' type="submit" value="Submit"/>
    <div id='screenNameResultView'></div>
    <br>
    <input id='screenNameTextField' type='text' placeholder='screen_name'/>
    <input id='screenNameSubmitButton' type="submit" value="Submit"/>
    <div id='userIdResultView'></div>
    <br>

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src='main.js'></script>
</body>
</html>

main.js

$(document).ready(function (){

    $('#userIdSubmitButton').click(function (){
        var userId = $('#userIdTextField').val();
        $.ajax({
            type: "GET",
            url: "http://api.twitter.com/1/users/show.json?user_id=" + userId + "&include_entities=true&callback=?",
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            cache:true,
            timeout:1000,
            success: function (json) {
                alert("Successfull: screen_name=" + json.screen_name);
                $('#screenNameResultView').text("screen_name=" + json.screen_name);
                console.log(json);
            },
            error: function () {
                alert("No Result");
            }
        });
    });

    $('#screenNameSubmitButton').click(function (){
        var screenName = $('#screenNameTextField').val();
        $.ajax({
            type: "GET",
            url: "http://api.twitter.com/1/users/show.json?screen_name=" + screenName + "&include_entities=true&callback=?",
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            cache:true,
            timeout:1000,
            success: function (json) {
                alert("Successfull: user_id=" + json.id);
                $('#userIdResultView').text("user_id=" + json.id);
                console.log(json);
            },
            error: function () {
                alert("No Result");
            }
        });
    });
});
于 2013-03-02T14:13:43.393 回答
0

你的网址有误

 <script type="text/javascript">
            function GetUser() {

                $.ajax({
                    type: "GET",
                    url: "http://api.twitter.com/1/users/show.json?user_id=id&include_entities=true&callback=?",//this is wrong
                    contentType: "application/json; charset=utf-8",
                    dataType: "jsonp",
                    cache:true,
                    timeout:8000,
                    success: function (json) {
                        alert("Successfull");
                    },
                    error: function () {
                        alert("cant search");
                    }                 
                });
        }
        </script>
于 2013-03-02T13:11:58.257 回答
0

这是一个工作示例http://jsfiddle.net/kMgES/

$.ajax({
    url: 'http://api.twitter.com/1/users/lookup.json?screen_name=noradio&callback=?',
    type: 'GET',
    dataType: 'json',
    timeout: 8000,
    success: function (data) {
        alert(data[0].name);
    },
    error: function () {
        alert("cant search");
    }    
});

在此示例中,搜索是按屏幕名称完成的。查看https://dev.twitter.com/docs/api/1/get/users/show以了解所有可能的选项。

考虑将其用于错误处理

error: function(XMLHttpRequest, textStatus, errorThrown){
           // error handling  
        }
于 2013-03-02T13:29:05.027 回答