我正在尝试使用twitter4j库为我的java项目发送推文.在我第一次运行时,我收到了关于证书sun.security.validator.ValidatorException和错误的错误sun.security.provider.certpath.SunCertPathBuilderException.然后我添加了twitter证书:
C:\Program Files\Java\jdk1.7.0_45\jre\lib\security>keytool -importcert -trustcacerts -file PathToCert -alias ca_alias -keystore "C:\Program Files\Java\jdk1.7.0_45\jre\lib\security\cacerts"
Run Code Online (Sandbox Code Playgroud)
但没有成功.这是获得twitters的过程:
public static void main(String[] args) throws TwitterException {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("myConsumerKey")
.setOAuthConsumerSecret("myConsumerSecret")
.setOAuthAccessToken("myAccessToken")
.setOAuthAccessTokenSecret("myAccessTokenSecret");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
Query query = new Query("iphone");
QueryResult result;
result = twitter.search(query);
System.out.println("Total amount of tweets: " + result.getTweets().size());
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " …Run Code Online (Sandbox Code Playgroud) 我在Twitter上有一个用户名列表,其个人资料是公开的.我希望从他们形成个人资料的那天起收到他们发布的"所有推文".我检查了GitHub上的 Twitter4J示例.
根据Twitter API文档,仅返回20条最新推文.无论如何我可以完成我的任务吗?
我想在一个Android应用程序中集成twitter,并找到了许多教程.实施了其中2个.但是在实现之后,当运行应用程序时,我才知道他们使用旧版本的twitter4J库.
虽然有很多其他的教程可用,但没有一个是最新的.只有2-3个月大.我需要一个使用最新twitter4J库版本的教程或示例,即twitter4j-core-3.0.3.
我的主要目的是允许用户tweets在他/她的帐户上发布.但同样,如果用户没有登录,我首先需要请求凭据.此外,如果用户点击logout按钮,那么我需要一些方法来记录用户.
我是android开发的新手(和java一般).我正在构建一个应用程序,要求用户通过登录到他们的基本信息导入和保存的Twitter帐户进行注册.所需的信息将是生日,姓名(全名),用户名,位置,性别等.我正在使用twitter4j来完成此任务.我试过看twitter4j文档,但是作为一个Android新手(和一般的java),文档有点难以理解,所以我似乎无法让它做除了设置状态更新之外的事情.
这是我活动中的代码:
package cc.co.localsquare.app;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;
import oauth.signpost.OAuthProvider;
import oauth.signpost.basic.DefaultOAuthProvider;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import oauth.signpost.exception.OAuthCommunicationException;
import oauth.signpost.exception.OAuthExpectationFailedException;
import oauth.signpost.exception.OAuthMessageSignerException;
import oauth.signpost.exception.OAuthNotAuthorizedException;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.http.AccessToken;
public class ConnectTwitterActivity extends BaseActivity {
public final static String CONSUMER_KEY = "valid key";
public final static String CONSUMER_SECRET = "valid secret";
public final static String CALLBACK_URL = "localsquare://ConnectTwitterActivity2";
private CommonsHttpOAuthConsumer commonHttpOAuthConsumer;
private OAuthProvider authProvider;
private Twitter twitter;
/** Called when the activity is first created. */
@Override …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码过滤我的twitter4j流:
TwitterStream twitterStream = getTwitterStreamInstance();
// Listener
twitterStream.addListener(listener);
// Filter
FilterQuery filtre = new FilterQuery();
String[] keywordsArray = { "iphone", "samsung" };
filtre.track(keywordsArray);
twitterStream.filter(filtre);
// Listening
twitterStream.sample();
Run Code Online (Sandbox Code Playgroud)
但结果是,例如:
27/59 - "Taking a risk over something only means that you want it more than anything"
28/63 - The more attractive you are, the more awkward I am.
29/64 - the thing about pain is that it demands to be felt
Run Code Online (Sandbox Code Playgroud)
我没有恢复我想要关注的关键字,问题出在哪里?
我正在使用Twitter4J库进行OAuth身份验证,但即使在它打开Twitter登录页面之前,我也会收到"身份验证挑战是空的例外".
这是代码.
Twitter twitter = new TwitterFactory().getInstance();
try
{
twitter.setOAuthConsumer(Startup.TWITTER_KEY, Startup.TWITTER_SECRET);
String callbackURL = "twitter-client:///";
RequestToken rToken = twitter.getOAuthRequestToken(callbackURL);
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.");
System.exit(-1);
}
}
catch(Exception e)
{
Toast.makeText(Home.this, "Network Host not responding: "+e.getMessage(),Toast.LENGTH_SHORT).show(); //This exception.
}
Run Code Online (Sandbox Code Playgroud)
例外:
E/Home(4393):接收的认证质询为空E/Home(4393):接收的认证质询为null相关的讨论可以在因特网上:E/Home(4393):http: //www.google.co.jp/search?q = 6c607809 或E/Home(4393):http: //www.google.co.jp/search ?q = 0f1d8134 E/Home(4393):TwitterException {exceptionCode = [6c607809-0f1d8134 cab4c0ac-d492a113] ,statusCode …
如何使用Twitter4j库在公共推文中进行搜索?
public static void main(String[] args) {
Twitter twitter = new TwitterFactory().getInstance();
try {
Query query = new Query("Cocaine");
QueryResult result;
do {
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
}
} while ((query = result.nextQuery()) != null);
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个Authentication credentials are missing.错误
是否有可能使用Twitter4j API获得超过100条推文?
如果是这样,任何人都可以指出这样做的方法吗?
我正在为twitter oauth尝试以下示例应用程序.
http://www.androidsdkforum.com/android-sdk-development/3-oauth-twitter.html
private void askOAuth() {
try {
consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
provider = new DefaultOAuthProvider("http://twitter.com/oauth/request_token",
"http://twitter.com/oauth/access_token",
"http://twitter.com/oauth/authorize");
String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
} catch (Exception e) {
Log.e(APP, e.getMessage());
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行以下代码时,它给出了如下异常
"oauth.signpost.exception.OAuthNotAuthorizedException:授权失败(服务器回复401).如果消费者密钥不正确或签名不匹配,就会发生这种情况."
在这条线上 String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
我提供了正确的"密钥"和"秘密",Twitter是否给了我错误的密钥和秘密?
在Android中,
Twitter连接失败.需要SSL吗?
我的代码工作得很好,目前它是一个实时应用程序.然而,自2014年以来它一直没有工作,我听说Twitter已经应用了https或使用SSL概念.
帮我解决了这个问题.
这是我的日志.
03-14 15:00:02.838: D/TwitterApp(697): Error getting access token
03-14 15:00:02.878: W/System.err(697): 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
03-14 15:00:02.878: W/System.err(697): message - SSL is required
03-14 15:00:02.878: W/System.err(697): code - 92
03-14 15:00:02.878: W/System.err(697): Relevant discussions can be found on the Internet at:
03-14 15:00:02.878: W/System.err(697): http://www.google.co.jp/search?q=6f0f59ca or
03-14 15:00:02.888: W/System.err(697): …Run Code Online (Sandbox Code Playgroud)