我创建了一些按以下关键字过滤的Twitter流.
TwitterStream twitterStream = getTwitterStreamInstance();
FilterQuery filtre = new FilterQuery();
String[] keywordsArray = { "iphone", "samsung" , "apple", "amazon"};
filtre.track(keywordsArray);
twitterStream.filter(filtre);
twitterStream.addListener(listener);
Run Code Online (Sandbox Code Playgroud)
根据匹配的关键字分隔推文的最佳方法是什么?例如,匹配"iphone"的所有推文都应存储到"IPHONE"表中,所有匹配"samsung"的推文都将存储到"SAMSUNG"表中,依此类推.注意:过滤器关键字的数量约为500.
我正在按照很多说明从我的应用程序发出简单的推文.我已经在Twitter上注册了,但我不能发推文.我可以登录,但不能更新我的状态.这是登录的代码
private void twitterLogOn() {
Twitter twitter = new TwitterFactory().getInstance();
try {
twitter.setOAuthConsumer(consumerKey, consumerSecret);
rToken = twitter.getOAuthRequestToken(myCallBack);
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(rToken.getAuthenticationURL())));
} catch (IllegalStateException e) {
// access token is already available, or consumer key/secret is not
// set.
if (!twitter.getAuthorization().isEnabled()) {
System.out.println("OAuth consumer key/secret is not set.");
finish();
}
} catch (Exception e) {
Toast.makeText(Configuration.this,getString(R.string.networkError), Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但是当我在登录后返回我的应用程序时,应该执行下一个代码,始终以Toast为例结束.
public void onResume() {
super.onResume();
Uri uri = getIntent().getData();
if (uri != null) {
oauthVerifier = uri.getQueryParameter("oauth_verifier");
try {
Twitter tt …Run Code Online (Sandbox Code Playgroud) 我需要我的Java Twitter应用程序才能在twitter上关注用户.当我将用户ID作为字符串传递给它时,应用程序会自动跟踪它.我找不到可以在Twitter4j中执行此操作的方法.
尝试使用twitter4j lib 将我的webapp与Twitter集成.
我已经注册了我的Twitter网站的应用程序,并获得Consumer key和Consumer secret值.
没什么特别的,标准的OAuth步骤.
码:
public class TwitterService {
private final String CONSUMER_KEY = "xxx";
private final String CONSUMER_SECRET = "yyy";
public String fav() {
Twitter twitter = TwitterFactory.getSingleton();
twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
...
Run Code Online (Sandbox Code Playgroud)
例外:
Caused by: java.lang.IllegalStateException: consumer key/secret pair already set.
Run Code Online (Sandbox Code Playgroud)
我没有更多配置key和secret,任何.properties或其他文件.
编辑:
注释行twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);导致异常:
java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied
Run Code Online (Sandbox Code Playgroud) 尝试连接到Twitter时出现此错误?为什么?
02-18 16:40:33.270: W/System.err(7167): oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: Service provider responded in error: 301 (Moved Permanently)
02-18 16:40:33.270: W/System.err(7167): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:218)
02-18 16:40:33.270: W/System.err(7167): at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:74)
02-18 16:40:33.270: W/System.err(7167): at app.jp.cropnet.twitter.TwitterApp$2.run(TwitterApp.java:255)
02-18 16:40:33.270: W/System.err(7167): Caused by: oauth.signpost.exception.OAuthCommunicationException: Service provider responded in error: 301 (Moved Permanently)
02-18 16:40:33.270: W/System.err(7167): at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:245)
02-18 16:40:33.270: W/System.err(7167): at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:193)
02-18 16:40:33.270: W/System.err(7167): ... 2 more
Run Code Online (Sandbox Code Playgroud) 线程"main"中的异常com.mongodb.MongoException $ DuplicateKey:{"serverUsed":"localhost/127.0.0.1:27017","err":"E11000重复键错误索引:twitterdb03.LevelAFollowers.$ id dup key:{ :ObjectId('52d5636de408652b4853a8fe')}","code":11000,"n":0,"connectionId":12,"ok":1.0}
我正在使用mongo 2.11.1
在java中从未遇到过简单的写操作问题
myMap.put(inid, followersList);
myObj.putAll(myMap);
myIdMapCollection.insert(myObj);
Run Code Online (Sandbox Code Playgroud) 我构建了一个从Twitter接收DStreams的应用程序,停止Streaming上下文的唯一方法就是停止执行.我想知道是否有办法设置时间并终止流式套接字而不停止整个应用程序?
我使用spark streaming来接收来自twitter的twitts.我收到许多警告说:
replicated to only 0 peer(s) instead of 1 peers
Run Code Online (Sandbox Code Playgroud)
这个警告是什么?
我的代码是:
SparkConf conf = new SparkConf().setAppName("Test");
JavaStreamingContext sc = new JavaStreamingContext(conf, Durations.seconds(5));
sc.checkpoint("/home/arman/Desktop/checkpoint");
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey("****************")
.setOAuthConsumerSecret("**************")
.setOAuthAccessToken("*********************")
.setOAuthAccessTokenSecret("***************");
JavaReceiverInputDStream<twitter4j.Status> statuses = TwitterUtils.createStream(sc,
AuthorizationFactory.getInstance(cb.build()));
JavaPairDStream<String, Long> hashtags = statuses.flatMapToPair(new GetHashtags());
JavaPairDStream<String, Long> hashtagsCount = hashtags.updateStateByKey(new UpdateReduce());
hashtagsCount.foreachRDD(new saveText(args[0], true));
sc.start();
sc.awaitTerminationOrTimeout(Long.parseLong(args[1]));
sc.stop();
Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,通过它我可以成功更新Twitter状态.我用它来分享指向显示图像的网页的链接.我认为按照与Instagram相同的方式对图像进行缩小预览以及推文是很好的.如何上传此图片以及我的推文?
嘿家伙我在Android应用程序中使用twitter4j使用twitter API.一切正常,我对图书馆没有任何问题.今天我运行lint并在twitter4j-core-3.0.3.jar中获取lint错误.我无法控制这个第三方库,所以应该做些什么.
lint错误如下:库中的包引用无效; 不包含在Android中:javax.management.openmbean.引自twitter4j.management.APIStatisticsOpenMBean.
问题: 查找Android中不支持的API API访问
Id: InvalidPackage
此检查扫描库,查找未包含在Android中的API调用.
创建Android项目时,会设置类路径,以便您只能访问Android中包含的API包中的类.但是,如果将其他项目添加到libs /文件夹,则无法保证这些.jar文件是使用Android特定的类路径构建的,特别是,它们可能正在访问不受支持的API,例如java.applet.
此检查扫描库jar并查找对未包含在Android中的API包的引用,并标记这些包.如果您的代码调用其中一个最终引用不受支持的包的库类,则这只是一个错误.
twitter4j ×10
twitter ×5
java ×4
android ×3
apache-spark ×2
android-lint ×1
integration ×1
key ×1
mongodb ×1
stream ×1
streaming ×1