是一些很简单的东西,以前遇到问题也都搜索求助别人搞定了,现在来做一下整理
下载SDK
http://code.google.com/p/weibo4j/
测试
将weibo4android-1.2.1.zip解压,导入Eclipse,测试运行
|--修改Weibo.java
public static String CONSUMER_KEY = "自己应用的CONSUMER_KEY";
public static String CONSUMER_SECRET = "自己应用的CONSUMER_SECRET ";
|-运行项目
|-打开Android系统自带的浏览器进行Oauth认证
|-获取到AccessToken的key和secret
创建Android项目
|-复制weibo4android,weibo4android.http;weibo4android.org.json;weibo4android.util;下的类都复制到我们新建项目中
|-把commons-codec.jar,commons-httpclient-3.1.jar,commons-logging-1.1.jar这几个jar也Add To Path到新建项中
传统的使用Android系统浏览器进行Oauth认证-参照weibo4android.androidexamples
|-在AndroidManifest.xml中配置授权回调的Activity,以及各种权限别忘了
<activity android:name=".OAuthActivity"> <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="Tree" android:host="Growing" /> </intent-filter> </activity>
|-MainActivity
|-OAuthActivitypackage tree.love.weiboFinishing; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.buttonTraditionOAuth).setOnClickListener(this); System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY); System.setProperty("weibo4j.oauth.consumerSecret",Weibo.CONSUMER_SECRET); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.buttonTraditionOAuth: Weibo weibo = new Weibo(); RequestToken requestToken; try { requestToken = weibo.getOAuthRequestToken("tree://Growing"); OAuthConstant.getInstance().setRequestToken(requestToken); Uri uri = Uri.parse(requestToken.getAuthenticationURL()); startActivity(new Intent(Intent.ACTION_VIEW, uri)); } catch (WeiboException e) {e.printStackTrace();} break; default: break; } } }
|-OAuthConstantpackage tree.love.weiboFinishing; import java.util.List; import weibo4android.Paging; import weibo4android.Status; import weibo4android.Weibo; import weibo4android.WeiboException; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class OAuthActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.timeline); Uri uri = this.getIntent().getData(); try { RequestToken requestToken = OAuthConstant.getInstance().getRequestToken(); AccessToken accessToken = requestToken.getAccessToken(uri.getQueryParameter("oauth_verifier")); OAuthConstant.getInstance().setAccessToken(accessToken); TextView textView = (TextView) findViewById(R.id.TextView01); textView.setText("得到AccessToken的key和Secret,可以使用这两个参数进行授权登录了.\n Access token:\n" + accessToken.getToken() + "\n Access token secret:\n" + accessToken.getTokenSecret()); } catch (WeiboException e) { e.printStackTrace(); } Button button = (Button) findViewById(R.id.Button01); button.setText("某一话题下的微博"); button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { Weibo weibo = OAuthConstant.getInstance().getWeibo(); weibo.setToken(OAuthConstant.getInstance().getToken(), OAuthConstant.getInstance().getTokenSecret()); List<Status> friendsTimeline; try { friendsTimeline = weibo.getTrendStatus("seaeast", new Paging(1, 20)); StringBuilder stringBuilder = new StringBuilder(""); for (Status status : friendsTimeline) { stringBuilder.append(status.getUser().getScreenName() + "说:\n" + status.getText() + "\n--------------------------------------------------\n"); } TextView textView = (TextView) findViewById(R.id.TextView01); textView.setText(stringBuilder.toString()); } catch (WeiboException e) { e.printStackTrace(); } } }); } }
package tree.love.weiboFinishing; import weibo4android.Weibo; import weibo4android.http.AccessToken; import weibo4android.http.RequestToken; public class OAuthConstant { private static Weibo weibo = null; private static OAuthConstant instance = null; private RequestToken requestToken; private AccessToken accessToken; private String token; private String tokenSecret; private OAuthConstant() { }; public static synchronized OAuthConstant getInstance() { if (instance == null) instance = new OAuthConstant(); return instance; } public Weibo getWeibo() { if (weibo == null) weibo = new Weibo(); return weibo; } public AccessToken getAccessToken() { return accessToken; } public void setAccessToken(AccessToken accessToken) { this.accessToken = accessToken; this.token = accessToken.getToken(); this.tokenSecret = accessToken.getTokenSecret(); } public RequestToken getRequestToken() { return requestToken; } public void setRequestToken(RequestToken requestToken) { this.requestToken = requestToken; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getTokenSecret() { return tokenSecret; } public void setTokenSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } }