3

私は特定のリストからすべてのメンバーのプロフィール画像をリストする方法を見つけようとしてきました。

APIURLからステータスを取得できます

 $.ajax({
  url: "https://api.twitter.com/1/lists/statuses.json?slug=stringed-chaos&owner_screen_name=darkpsy",
  dataType: "jsonp",
  jsonpCallback: "listTweets"
});

function listTweets(r) { 
console.log(r);
var output = '<ul>';

$.each(r, function(key, val) {
    var text = r[key].text;
    var thumbnail = r[key].user.profile_image_url;
    var name = r[key].user.name;

    output += '<li>';
    output += '<img src="' + thumbnail +'" alt="Photo of ' + name + '">';
    output += '<div>' + text + '</div>';
    output += '</li>';      
}); //go through each tweet
output += '</ul>';

API URLをGETリスト/メンバーURLに変更すると(公式のTwitterドキュメントに記載されているように)、情報を取得できません(未定義)。statuses.jsonは問題なく解析できますが、members.jsonは何も返しません。

次のようにコーディングします。

    $.ajax({
  url: "https://api.twitter.com/1/lists/members.json?slug=stringed-chaos&owner_screen_name=darkpsy",
  dataType: "jsonp",
  jsonpCallback: "listTweets"
});

function listTweets(r) { 
console.log(r);
var output = '<ul>';

    $.each(r, function(key, val) {
        var text = r[key].text;
        var thumbnail = r[key].profile_image_url;
        var name = r[key].screen_name;
            output += '<li>';
        output += '<img src="' + thumbnail +'" alt="Photo of ' + name + '">';
        output += '<div>' + text + '</div>';
        output += '</li>';      
    }); //go through each tweet
    output += '</ul>';
    $('#tweetlist').html(output);}`

ツイッターAPIのドキュメントはあまり親しみがないようで、これに対処するためのオンラインで何かを見つけられなかったので、どんな種類の助けもいただければ幸いです。

4

2 に答える 2

0

これを試して:

<!DOCTYPE HTML>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function() {
  $.ajax({
    url: "https://api.twitter.com/1/lists/statuses.json?slug=customers&owner_screen_name=vijaysales",
    dataType: "jsonp",
    success: function(r) {
      listTweets(r);
    }
  });
  function listTweets(r) {
    var output = '<ul>';
    $.each(r, function(key, val) {
      var text = r[key].text;
      console.log(JSON.stringify(r[key]));
      var thumbnail = r[key].user.profile_image_url;
      var name = r[key].screen_name;
      output += '<li>';
      output += '<img src="' + thumbnail +'" alt="Photo of ' + name + '">';
      output += '<div>' + text + '</div>';
      output += '</li>';      
    }); //go through each tweet
    output += '</ul>';
    $('#tweetlist').html(output);
  }
})
</script>
</head>
<body>
<div id="tweetlist"></div>  
</body>
</html>

メソッドを使用できますsuccess。profile_image_urlに関する問題を修正しました。

アップデート

<!DOCTYPE HTML>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function() {
  $.ajax({
    url: "https://api.twitter.com/1/lists/members.json?slug=customers&owner_screen_name=vijaysales",
    dataType: "jsonp",
    success: function(r) {
      listTweets(r);
    }
  });
  function listTweets(r) {
    var output = '<ul>';
    $.each(r.users, function(n, user) {
      var text = user.status ? user.status.text : '';
      var thumbnail = user.profile_image_url;
      var name = user.screen_name;
      output += '<li>';
      output += '<img src="' + thumbnail +'" alt="Photo of ' + name + '">';
      output += '<div>' + text + '</div>';
      output += '</li>';      
    }); //go through each tweet
    output += '</ul>';
    $('#tweetlist').html(output);
  }
})
</script>
</head>
<body>
<div id="tweetlist"></div>  
</body>
</html>
于 2012-11-29T07:48:33.413 に答える
0

TwitterのメンバーリストAPIは、ステータスAPIとは異なる形式でデータを返します。探しているデータはの下に含まれていusers[]ます。修正された解決策は次のとおりです。

$.ajax({
    url: "https://api.twitter.com/1/lists/members.json?slug=customers&owner_screen_name=vijaysales",
    dataType: "jsonp",
    success : function(data) {listTweets(data["users"]);}
});

function listTweets(r) {
    var output = '<ul>';

    $.each(r, function(key, val) {
        var text = r[key].text;
        var thumbnail = r[key].profile_image_url;
        var name = r[key].screen_name;


        output += '<li>';
        output += '<img src="' + thumbnail +'" alt="Photo of ' + name + '">';
        output += '<div>Photo of ' + name + '</div>';
        output += '</li>';      
    }); //go through each tweet
    output += '</ul>';
    $('#tweetlist').html(output);
}

jsFiddleの最新バージョンのjQueryではうまく機能していないようだったため、コールバックをからに変更しましたjsonpCallbacksuccess()jsonpCallback

http://jsfiddle.net/vCA4F/のjsFiddleで試して、jsonviewerで返されたJSONの構造を確認してください。

于 2012-11-29T07:58:30.617 に答える