【问题标题】:How can I convert a twitter user ID into a user name in Javascript/jQuery如何将 twitter 用户 ID 转换为 Javascript/jQuery 中的用户名
【发布时间】:2015-03-09 15:15:57
【问题描述】:

我正在构建一个推特网络应用程序。它遵循一组选定的推特 ID,并且仅根据一组选定的关键字挑选出他们发布的推文。一切正常,除了我想将数组中的 twitter ID 转换为相应的 twitter 用户名(一个接一个),例如,ID 数组是 var trackedHandles;我想将 trackedHandles[i] 转换为用户名并将其打印到实际推文旁边的控制台。所以它在控制台中看起来像这样:@me:这是我的推文这是我与此相关的代码选择:

t.stream(
    "statuses/filter",
    {track: trackedHandles + trackedWords, lang: "en" },
    function(stream) {
        stream.on('data', function(tweet) {
            for (var i= 0; i < trackedData.length; i++) {
                if(tweet.text.indexOf(trackedData[i]) > - 1) {
                    // incriments added value to the word
                    redisClient.incr(trackedData[i]);

                    console.log(trackedHandles[i] + ":" + " " + tweet.text + " " );
                    //console.log(trackedData[i]);
                }
            }
        }); 
    }
);

现在我只是打印 twitter ID,但我想再次打印用户名。我感谢您的帮助。

【问题讨论】:

  • 控制台当前正在输出什么?
  • 用户ID:加推特所以12344556:这是我的推文
  • 您在流中收到什么样的 REST 响应?您能给我们提供您为接收数据而点击的资源 URL 吗?
  • 不确定,但我正在使用 ntwitter、express 和 nodejs。我使用 twitter 创建了一个开发者帐户,并且我的凭据也在 .js 文件中。我只是不确定如何将 id 转换为用户名
  • 那么您是说您收到的仅有的两条数据是用户 ID 和推文文本?尝试在 stream.on() 回调中记录“tweet”。如果 screen_name 没有出现在那里,我真的不确定。大多数返回推文的推特 GET 调用似乎都包含用户 ID 和屏幕名称

标签: javascript jquery json twitter


【解决方案1】:

我自己想出来的!如果将来有人需要知道如何:

        //Get Screen_Name from tweet object.
        function getPosition(str,m, i) { //special helper function to find the nth position of a string.
            return str.split(m, i).join(m).length;
        }
        var snStartingPos = getPosition(tweetObject, "screen_name", 2); //starting position of "screen_name" in tweet object.
        var snEndingPos = snStartingPos + 14; //ending position of "screen_name" in tweet object (where we actually want to start).
        var unStartingPos = getPosition(tweetObject, "location", 1); //starting position of the word after where we want to end.
        var unPrePos = unStartingPos - 3; //subtract that by 3 characters to exclude the unnecessary characters
        var snLength = unPrePos - snEndingPos; //this is now the length of the screen_name we want
        var screen_name = "@" + tweetObject.substr(snEndingPos, snLength); //get the sub-str that we want (the "screen_name") from tweet object.
        //End Get Screen_Name from tweet Object

tweetObject 只是将推文转换为字符串。函数getPosition,我下了另一个stackOverflow问题页面:How to get the nth occurrence in a string?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-15
    • 2019-07-24
    • 2019-08-06
    • 2011-06-19
    • 2021-11-18
    • 2013-11-15
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多