我正在使用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作为编程语言.但是我不知道如何开始这个项目.我做了一个搜索,我知道有:
我可以在一段时间内从一个国家(如果它可以来自某个国家)开始获取所有推文.一些示例如下:您正在提供用户名,如果是公共个人资料,则会返回推文.我没有所有公开个人资料的列表.我应该处理这个问题吗?
有任何想法吗?
当我有推文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
谢谢
我是社交网络分析和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 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) 我手动安装了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,我不能按照此处的建议从类路径中排除该文件.
下面是我的代码。我的问题是如何获取另一个帐户的用户时间表?(例如,像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) 我已使用 twitter 4j 库将 twitter 集成到我的应用程序中,仅用于登录目的。在我的 Twitter 登录页面中显示
该应用程序将能够
我想删除一些权限,我已经看到了这个链接,但没有任何想法。谁可以帮我这个事?
我正在尝试将我的应用程序集成到 Twitter 并且我做到了
但我的问题是:如何从 twitter 注销?我可以删除我的应用程序的 RequestToken 或 OAuth 吗?
我尝试使用:
twitter.setOAuthAccessToken(null); 但不起作用
也不起作用
请帮我
提前致谢
我正在尝试使用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)