标签: twitter4j

OAuth,Twitter和Android的问题:与服务器的http通信失败

有没有人对Android的Twitter进行OAuth身份验证的工作示例?我曾试图同时使用Twitter4J和SignPost,但我得到了非常奇怪的错误,说twitter.com是一个未知的主机.我已经知道使用SignPost库和Android 存在问题(在谷歌Android下),并且根据项目的主页,CommonsHttpOAuth*类应该有效.

这是我的SignPost:

private void getReqTokenAndAuthenticateUsingSignPost() {
    String callbackUrl = "twitter-test:///";
    CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY,
            CONSUMER_SECRET);
    CommonsHttpOAuthProvider provider = new CommonsHttpOAuthProvider(
            "http://twitter.com/oauth/request_token", "http://twitter.com/oauth/access_token",
            "http://twitter.com/oauth/authorize");

    String tokenStr = consumer.getToken();
    String tokenSecretStr = consumer.getTokenSecret();

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    Editor edit = preferences.edit();
    edit.putString(REQ_TOKEN, tokenStr);
    edit.putString(REQ_TOKEN_SECRET, tokenSecretStr);

    try {
        String authUrl = provider.retrieveRequestToken(consumer, callbackUrl);
        Uri authenticationUri = Uri.parse(authUrl);
        startActivity(new Intent(Intent.ACTION_VIEW, authenticationUri));
    } catch (OAuthMessageSignerException e) {
        e.printStackTrace();
    } catch (OAuthNotAuthorizedException e) {
        e.printStackTrace();
    } catch (OAuthExpectationFailedException e) {
        e.printStackTrace();
    } …
Run Code Online (Sandbox Code Playgroud)

twitter android oauth signpost twitter4j

3
推荐指数
1
解决办法
8502
查看次数

Android,Twitter,'关注我们'

我正在构建一个Android应用程序,我被困在一个地方.我使用twitter4j,路标apis在我的应用程序中集成了Twitter.我成功编写了将文本放入用户配置文件的代码,但我也希望用户在点击"关注我们的推特"按钮时关注我的应用.

有人可以给我参考或指导编写这样的代码吗?

twitter android twitter4j

3
推荐指数
1
解决办法
3927
查看次数

Android onNewIntent Uri始终为null

在我的activity的onNewIntent()方法中, getIntent().getData();始终为null.在转到onCreate()或任何其他生命周期函数之前,它肯定会使用此方法.它从浏览器返回此处,我不知道为什么它getIntent().getData()是null.

此活动会像这样启动浏览器 context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));

并返回此处

@Override
public void onNewIntent(Intent intent){
    super.onNewIntent(intent);

    Uri uri = getIntent().getData();
    if (uri != null && uri.toString().startsWith(TwitterConstants.CALLBACK_URL)) {...}
}
Run Code Online (Sandbox Code Playgroud)

但是uri总是空的.

明显的东西:

  <activity
        android:name="myapp.mypackage.TweetFormActivity"
        android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name"
        android:launchMode="singleInstance"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar">
         <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="oauth" android:host="myapp"/>
        </intent-filter>
        </activity>

static final String CALLBACK_URL = "oauth://myapp";
Run Code Online (Sandbox Code Playgroud)

我在这里想念的是什么?谢谢

android uri callback android-intent twitter4j

3
推荐指数
1
解决办法
3593
查看次数

Twitter4j:在某个推文/时间点之后下载推文

我使用twitter4j来获取我的时间轴:

twitter.getHomeTimeline(new Paging(1,100));
Run Code Online (Sandbox Code Playgroud)

我如何获得接下来的100条推文?一般来说,是否可以指定两个推文或两个时间点,并获得两者之间发布的推文?

java android twitter4j

3
推荐指数
1
解决办法
3796
查看次数

Twitter4J访问令牌已经可用

我在使用Twitter4J时收到错误消息:

java.lang.IllegalStateException: Access token already available.
twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:112)
twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:104)
twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:276)
twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:269)
[...]
Run Code Online (Sandbox Code Playgroud)

调用该方法时抛出此异常Twitter.getOAuthRequestToken().我想获取授权URL来验证下一个用户.

我怎么可能解决这个问题?我只将OAuthConsumerKey,OAuthConsumerSecret,OAuthAccessToken和OAuthAccessTokenSecret放到Twitter4J属性中.但是,如何接收授权URL以验证新用户?

谢谢和问候,

马丁

java twitter oauth twitter4j

3
推荐指数
2
解决办法
4232
查看次数

Twitter4j TwitterStream停止/关闭

我有一个Android应用程序启动TwitterStream与Twitter4j,我正在寻找帮助,如果我不再需要流停止/关闭它.我根据偏好更改启动了流,但需要根据用户操作在我的应用的其他部分停止它.

以下是我启动流的方式,这是我在文档中找到的典型方法:

ConfigurationBuilder cb = new ConfigurationBuilder();

cb.setDebugEnabled(true);

cb.setOAuthConsumerKey(A);

cb.setOAuthConsumerSecret(B);

cb.setOAuthAccessToken(C);

cb.setOAuthAccessTokenSecret(D));

TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
StatusListener listener = new StatusListener() {

    @Override
    public void onDeletionNotice(StatusDeletionNotice arg0) {

    }
    .
    .   
    .

};
FilterQuery fq = new FilterQuery();
fq.follow(new long[]{X});

twitterStream.addListener(listener);
twitterStream.filter(fq); 
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

twitter android twitter4j twitter-streaming-api

3
推荐指数
1
解决办法
2953
查看次数

如何使用处理和Twitter4j从用户时间轴中获取20多个结果?

我正在尝试绘制草图,以从特定用户的Twitter时间轴中获取最后100条推文。我正在使用Twitter4j,并且草图可以正常工作,但我了解到Twitter4J默认将时间轴结果限制为20。

我已经看过此页面,以了解有关使用“查询”时获得超过100个信息的信息,但是在尝试获取特定用户的时间轴时,似乎工作方式有所不同。 如何使用Twitter4j检索100多个结果

感谢您的光临!

这是我的草图:

import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.json.*;
import twitter4j.internal.util.*;
import twitter4j.management.*;
import twitter4j.auth.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
import twitter4j.internal.json.*;


ConfigurationBuilder cb = new ConfigurationBuilder();

cb.setOAuthConsumerKey("XXXXXX");
cb.setOAuthConsumerSecret("XXXXXX");
cb.setOAuthAccessToken("XXXXXX");
cb.setOAuthAccessTokenSecret("XXXXXX");

java.util.List statuses = null;

Twitter twitter = new TwitterFactory(cb.build()).getInstance();

String userName ="XXXXXX";
int numTweets = 100;
String[] twArray = new String[numTweets];



  try {
    statuses = twitter.getUserTimeline(userName);
  }
  catch(TwitterException e) {
  }

  for (int i=0; i<statuses.size(); i++) {
    Status status = …
Run Code Online (Sandbox Code Playgroud)

processing timeline limit twitter4j

3
推荐指数
1
解决办法
4373
查看次数

403:请求被理解,消息 - SSL是必需的代码 - 92但它已被拒绝Twitter Android

403:该请求已被理解,但已被拒绝.随附的错误消息将解释原因.由于更新限制而拒绝请求时使用此代码(https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following)W/System.err( 1466):消息 - SSL是必需的代码 - 9条目损坏或截断

Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=b2b52c28 or

http://www.google.co.jp/search?q=10981ab8
0
TwitterException{exceptionCode=[b2b52c28-10981ab8], statusCode=403, message=SSL is required, code=92, retryAfter=-1, rateLimitStatus=null, version=3.0.3}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)

twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
 twitter4j.TwitterImpl.post(TwitterImpl.java:1871)
 twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:241)
 br.com.dina.oauth.instagram.example.Facebook$2$1$1.onClick(Facebook.java:121)
 android.view.View.performClick(View.java:3480)

 android.view.View$PerformClick.run(View.java:13983)

android.os.Handler.handleCallback(Handler.java:605)
 android.os.Handler.dispatchMessage(Handler.java:92)
 android.os.Looper.loop(Looper.java:137)

 android.app.ActivityThread.main(ActivityThread.java:4340)
java.lang.reflect.Method.invokeNative(Native Method)
 java.lang.reflect.Method.invoke(Method.java:511)
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
 dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

twitter android twitter4j

3
推荐指数
1
解决办法
1817
查看次数

如何使用Twitter4J在推文中检索图像?

我想发出关键字或主题标签的查询,并从包含该关键字的所有推文中检索所有图像.我可以使用带有Java的Twitter4J轻松发出查询并检索生成的推文.我知道http://t.co/xxxx我可以在浏览器中访问的链接并查看相关图像.那个图像在https://pbs.twimg.com/xxxxx.所以我需要做的就是在我的代码中完成这个过程!

我可以http://t.co/xxxx很容易地解析每条推文中的链接.但是,当我从该链接中检索所有html时,我看不到任何https://pbs.twimg.com/xxxx图像:(.我认为正在发生的事情是Twitter正在通过JavaScript加载这些图像.

有什么方法可以轻松检索每条推文上的图像吗?

这是我到目前为止:

package com.company;

import twitter4j.*;
import twitter4j.conf.ConfigurationBuilder;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) throws Exception {
        ConfigurationBuilder cb = new ConfigurationBuilder();
        cb.setDebugEnabled(true)
                .setOAuthConsumerKey("xxxxxxxxxx")
                .setOAuthConsumerSecret("xxxxxxxxxxxx")
                .setOAuthAccessToken("xxxxxxxxx-xxx-xxxxxxxx")
                .setOAuthAccessTokenSecret("xxxxxxxxxxxxxxxxxxx");
        TwitterFactory tf = new TwitterFactory(cb.build());
        Twitter twitter = tf.getInstance();
        Query query = new Query("#hashtag");
        QueryResult result = twitter.search(query);
        Pattern pattern = Pattern.compile("http://t.co/\\w{10}");
        Pattern imagePattern = Pattern.compile("https\\:\\/\\/pbs\\.twimg\\.com/media/\\w+\\.(png | jpg …
Run Code Online (Sandbox Code Playgroud)

java twitter twitter4j

3
推荐指数
1
解决办法
4404
查看次数

添加依赖项时:CDI部署失败,类型为Set <Service>且具有限定符@Default的不满意依赖项

当我将twitter hbc依赖项添加到我的pom.xml时,我收到了一个错误.我按照这里的说明进行操作.我不明白,如果它是一个依赖性问题我应该在网上找到一个修复,但如果我注释掉那个依赖,我的服务器正在启动..

这是我添加到我的pom.xml中的内容:

   <dependency>
      <groupId>com.twitter</groupId>
      <artifactId>hbc-core</artifactId> <!-- or hbc-twitter4j -->
      <version>2.2.0</version> <!-- or whatever the latest version is -->
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这是错误:

2015-06-20T18:13:52.877+0200|Severe: Exception while loading the app : CDI deployment failure:WELD-001408: Unsatisfied dependencies for type Set<Service> with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)
  at com.google.common.util.concurrent.ServiceManager.<init>(ServiceManager.java:0)
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type Set<Service> with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)
  at com.google.common.util.concurrent.ServiceManager.<init>(ServiceManager.java:0)
    at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:370)
    at …
Run Code Online (Sandbox Code Playgroud)

twitter glassfish maven twitter4j twitter-hbc

3
推荐指数
1
解决办法
9231
查看次数