标签: twitter4j

我可以请求/过滤twitter流API以仅返回带有地理标记的推文吗?

我正在使用twitter4j库访问公共twitter流.我正在尝试制作涉及地理标记推文的项目,我需要收集大量的推文进行测试.

现在我从twitter获得未经过滤的流,只保存带地理标记的推文.这很慢,因为VAST的大部分推文都没有地理标签.我希望twitter流只向我发送带有地理标记的推文.

我已经尝试过使用这个问题中提到的方法,你用一个大小为360*180*的边界框进行过滤,但这对我不起作用.使用该过滤器时我没有收到任何错误,但我仍然得到99%没有地理标记的推文.我是这样做的:

ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true)
    .setOAuthConsumerKey("censored")
    .setOAuthConsumerSecret("censored")
    .setOAuthAccessToken("censored")
    .setOAuthAccessTokenSecret("censored");

TwitterStream twitterStream = newTwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new MyStatusListener();
twitterStream.addListener(listener);

//add location filter for what I hope is the whole planet. Just trying to limit
//results to only things that are geotagged
FilterQuery locationFilter = new FilterQuery();
double[][] locations = {{-180.0d,-90.0d},{180.0d,90.0d}};

locationFilter.locations(locations);

twitterStream.filter(locationFilter);

twitterStream.sample();
Run Code Online (Sandbox Code Playgroud)

有关为什么我仍然收到没有地理标记的推文的任何建议?

编辑:我只是重新阅读twitter4j javadoc,在Twitter流中添加过滤器,并说"默认访问级别允许最多200个跟踪关键字,400个跟随用户ID和10个1度位置框." 边界框可能只有1度宽?这与我遇到的原始信息不同.那是我的问题吗?我的过滤请求太大,以至于被忽略了?尝试使用它时我没有收到任何错误.

java twitter twitter4j

4
推荐指数
1
解决办法
2739
查看次数

在Java的时间段内从一个国家获取所有推文

我正在开展一个项目,我将从一个在特定时间段内发布过推文的国家/地区获取所有推文.之后我会对它进行数据挖掘(检查对某个学生说了多少积极的想法等).我想用Java作为编程语言.但是我不知道如何开始这个项目.我做了一个搜索,我知道有:

我可以在一段时间内从一个国家(如果它可以来自某个国家)开始获取所有推文.一些示例如下:您正在提供用户名,如果是公共个人资料,则会返回推文.我没有所有公开个人资料的列表.我应该处理这个问题吗?

有任何想法吗?

java twitter twitter4j

4
推荐指数
1
解决办法
3843
查看次数

twitter4j - 通过ID获取推文

当我有推文ID和用户ID时,如何获取推文?我有一个包含以下行的文件:

userID  tweetID
Run Code Online (Sandbox Code Playgroud)

我想我应该过去:

Query query = new Query("huh ?");
QueryResult result = twitter.search(query);
List<Status> tweets = result.getTweets();
Run Code Online (Sandbox Code Playgroud)

但我不知道如何拼写 query

谢谢

twitter4j

4
推荐指数
1
解决办法
1万
查看次数

Twitter身份验证凭据

我是社交网络分析和Twitter API的新手.我想收集某些主题的推文.所以我写了下面的代码

package com;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class TwitterSearchAdvance {
    public static void main(String[] vishal) throws TwitterException,
            IOException {
        // List<Tweet> Data = new ArrayList<Tweet>();
        StringBuffer stringbuffer = new StringBuffer();
        Twitter twitter = new TwitterFactory().getInstance();

        for (int page = 0; page <= 4; page++) {
            Query query = new Query("Airtel");
            // query.setRpp(100); // 100 results per page

            QueryResult …
Run Code Online (Sandbox Code Playgroud)

twitter social-networking twitter4j twitter-oauth

4
推荐指数
1
解决办法
4159
查看次数

Twitter4j 获得追随者数量最多的追随者

我将 twitter 4j 用于一个小型 twitter 应用程序,我目前正在使用以下代码来获取关注者 ID,我需要的是一个用户(让我说我)我喜欢拥有最多关注者数量的前 10 个用户(以下代码获取用户的 profileID)。在我的 Twitter 个人资料中,我有 80 个关注者,我喜欢获取拥有更多关注者的关注者(前 10 个)

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_KEY_SECRET);
String accessToken = getSavedAccessToken();
String accessTokenSecret = getSavedAccessTokenSecret();
AccessToken oathAccessToken = new AccessToken(accessToken, accessTokenSecret);

twitter.setOAuthAccessToken(oathAccessToken);
User user = null;
try {
    user = twitter.showUser(username);// id = user.getId();
} catch (TwitterException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

java twitter twitter4j

4
推荐指数
1
解决办法
3698
查看次数

由于JAR冲突,无法运行Flume

我手动安装了Flume和Hadoop(我的意思是,不是CDH),我正在尝试从Cloudera 运行twitter 示例.

apache-flume-1.5.0-SNAPSHOT-bin目录中,我使用以下命令启动代理:

bin/flume-ng agent -c conf -f conf/twitter.conf -Dflume.root.logger=DEBUG,console -n TwitterAgent
Run Code Online (Sandbox Code Playgroud)

我的conf/twitter.conf文件使用记录器作为接收器.该conf/flume-env.sh受让人类路径中flume-sources-1.0-SNAPSHOT.jar包含Twitter的源的定义.结果输出是:

(...) [ERROR org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:253)] Unable to start EventDrivenSourceRunner: { source:com.cloudera.flume.source.TwitterSource{name:Twitter,state:IDLE} } - Exception follows. java.lang.NoSuchMethodError:
twitter4j.FilterQuery.setIncludeEntities(Z)Ltwitter4j/FilterQuery;
at com.cloudera.flume.source.TwitterSource.start(TwitterSource.java:139)
Run Code Online (Sandbox Code Playgroud)

冲突源于FilterQuery在水槽lib中的其他地方定义的类,并且不包含该setIncludeEntities方法.对我来说,包含此类的文件是twitter4j-stream-3.0.3.jar,我不能按照此处的建议从类路径中排除该文件.

java hadoop twitter4j flume

4
推荐指数
1
解决办法
5167
查看次数

如何使用twitter4j获取用户时间线

下面是我的代码。我的问题是如何获取另一个帐户的用户时间表?(例如,像att这样的公共帐户)。我有我的用户密钥,机密,访问令牌,访问机密,它们已在我的Twitter帐户下注册。请帮我。非常感谢你。

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;

import java.util.List;

/**
 * @author Yusuke Yamamoto - yusuke at mac.com
 * @since Twitter4J 2.1.7
 */
public class GetUserTimeline {
    /**
     * Usage: java twitter4j.examples.timeline.GetUserTimeline
     *
     * @param args String[]
     */
    public static void main(String[] args) {
        // gets Twitter instance with default credentials
        Twitter twitter = new TwitterFactory().getInstance();
        try {
            ConfigurationBuilder cb = new ConfigurationBuilder();
            cb.setDebugEnabled(true)
              .setOAuthConsumerKey("***")
              .setOAuthConsumerSecret("***")
              .setOAuthAccessToken("***")
              .setOAuthAccessTokenSecret("***");
            TwitterFactory tf = new TwitterFactory(cb.build());
            Twitter twitter1 = …
Run Code Online (Sandbox Code Playgroud)

java twitter4j

4
推荐指数
1
解决办法
7505
查看次数

如何在android中更改应用程序对twitter的访问权限?

我已使用 twitter 4j 库将 twitter 集成到我的应用程序中,仅用于登录目的。在我的 Twitter 登录页面中显示

该应用程序将能够

  • 从您的时间线中读取推文
  • 查看您关注的人并关注新人
  • 更新您的个人资料
  • 为您发布推文

我想删除一些权限,我已经看到了这个链接,但没有任何想法。谁可以帮我这个事?

twitter android twitter4j twitter-oauth

4
推荐指数
1
解决办法
3887
查看次数

从 twitter api android 注销

我正在尝试将我的应用程序集成到 Twitter 并且我做到了

但我的问题是:如何从 twitter 注销?我可以删除我的应用程序的 RequestToken 或 OAuth 吗?

我尝试使用:

  • twitter.setOAuthAccessToken(null);

但不起作用

  • callbackUrl = "api.twitter.com/oauth/authorize?force_login=true";

也不起作用

请帮我

提前致谢

android twitter4j twitter-oauth

4
推荐指数
1
解决办法
1475
查看次数

由于id没有更新,所以twitter4j

我正在尝试使用since_id通过Twitter搜索api获取推文。下面是我的代码,在这里我正在创建一个查询对象的地图,因为ID。我默认将since ID设置为0,而我的目标是每次运行查询时都要更新since ID。这样,当我下次运行查询时,它不会得到相同的推文,而应从上一条推文开始。

import java.io.{PrintWriter, StringWriter}
import java.util.Properties
import com.google.common.io.Resources
import twitter4j._
import scala.collection.JavaConversions._
// reference: http://bcomposes.com/2013/02/09/using-twitter4j-with-scala-to-access-streaming-tweets/
object Util {
    val props = Resources.getResource("twitter4j.props").openStream()
    val properties = new Properties()
    properties.load(props)

    val config = new twitter4j.conf.ConfigurationBuilder()
        .setDebugEnabled(properties.getProperty("debug").toBoolean)
        .setOAuthConsumerKey(properties.getProperty("consumerKey"))
        .setOAuthConsumerSecret(properties.getProperty("consumerSecret"))
        .setOAuthAccessToken(properties.getProperty("accessToken"))
        .setOAuthAccessTokenSecret(properties.getProperty("accessTokenSecret"))
    val tempKeys =List("Yahoo","Bloomberg","Messi", "JPM Chase","Facebook")
    val sinceIDmap : scala.collection.mutable.Map[String, Long] = collection.mutable.Map(tempKeys map { ix => s"$ix" -> 0.toLong } : _*)
    //val tweetsMap: scala.collection.mutable.Map[String, String]
    val configBuild = (config.build())
    val MAX_TWEET=100
    getTweets()

    def getTweets(): Unit ={
        sinceIDmap.keys.foreach((TickerId) => getTweets(TickerId)) …
Run Code Online (Sandbox Code Playgroud)

twitter scala twitter4j

4
推荐指数
1
解决办法
717
查看次数