簡體   English   中英

如何在WinJS.UI.ListView中列出我的Twitter關注者列表

[英]How can I list my twitter followers list in WinJS.UI.ListView

我想在WinJS.UI.ListView中列出我所有的Twitter關注者。

        WinJS.xhr({
            url: "https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=" + twitterusername,
            responseType: "json"
        }).then(
                function (xhr) {
                    var json = JSON.parse(xhr.responseText);
                    var a = [];
                    a = json.ids;
                    //
                    // now what next?
                    //
                },
                function (error) {
                    myListView.textContent = error;
                }
            );

我通過json.ids獲得了所有我的Twitter粉絲ID。 但是接下來是如何找到它們的屏幕名稱和prifile圖片,以及如何將它們與ListView控件綁定。 因為我已經將簡單的靜態數據綁定到ListView中,但是對於此示例,我卻一無所知。

您必須對每個ID再次調用api.twitter.com/1/users/show.json?user_id=json.ids[i]

收到所有回調后,您必須創建一個數組,其中包含具有標題,文本和圖片屬性的對象。 之后,只需將其與您的列表綁定即可。

以下代碼是一個示例(未經測試,不知道它是否可以正常運行,但應為您指明正確的方向)

var followersCallback = function(xhr){

          var json = JSON.parse(xhr.responseText);
          var promises = [];

          // make promises for each user id (call to twitter to get picture/name/description)
          for (var i = 0; i < json.ids.length; i++){

            var promise = WinJS.xhr({
                url: "https://api.twitter.com/1/users/show.json?user_id=" + json.ids[i],
                responseType: "json"
            });

            promises.push(promise);

        }

        var dataArray = [];

        // join those promises
        WinJs.Promise.join(promises)
                     .then(function(args){
                        //when you get callback from all those promises
                        for (var j = 0; j < args.length; j++){

                            //not sure if parse is needed
                            args[j]=JSON.parse(args[j].responseText);

                            //populate your data array
                            var obj = {};
                            obj.title = args[j].name;
                            obj.picture = args[j].profile_image_url;
                            obj.text = args[j].description;
                            dataArray.push(obj);
                        }
                        //bind your data to the list
                        var dataList = new WinJS.Binding.List(dataArray);

                     });
    };

    WinJS.xhr({
                url: "https://api.twitter.com/1/followers/ids.json?cursor=-1&screen_name=" + twitterusername,
                responseType: "json"
            }).then(
                    followersCallback,
                    function (error) {
                        myListView.textContent = error;
                    }
            );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM