android中使用Twitter登陆获取用户信息
来源:互联网 发布:淘宝网打不开 编辑:程序博客网 时间:2024/06/06 17:04
第一步:准备工作
注册twitter开发者获取key(比较简单,不描述)等,网址:https://apps.twitter.com 要翻墙可以用蓝灯https://github.com/getlantern/lantern
第二步:在as中引入依赖包
- 在工程的gradle文件中添加仓库
buildscript { repositories { //twitter jar地址 maven { url 'https://maven.fabric.io/public' } jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.2' }}
- 在Module中添加依赖
repositories { maven { url 'https://maven.fabric.io/public' } maven { url "https://jitpack.io" } jcenter() mavenCentral()}......compile('com.twitter.sdk.android:twitter-core:1.3.1@aar') { transitive = true; }
第三步:在xml文件中使用官方控件
<com.twitter.sdk.android.core.identity.TwitterLoginButton android:id="@+id/btn_twitter" android:layout_width="match_parent" android:layout_height="45dp" android:layout_marginTop="36dp" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" />
第四步:代码操作
public class OtherLoginActivity extends BaseActivity { @BindView(R.id.btn_twitter) TwitterLoginButton mBtnTwitter; private static final String TWITTER_KEY = "h29HRrL35DI91ge2D4ZZlu5ts"; private static final String TWITTER_SECRET = "xzxUa6fDUF5wsd0fdkapqrzsfDiHygTallN8Q4gG4A1m6W2YuW"; private String userId = ""; private String name = ""; private String imgUrl = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET); Fabric.with(this, new TwitterCore(authConfig)); setContentView(R.layout.activity_other_login); setUpTwitterButton(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //千万不要忘记了 mBtnTwitter.onActivityResult(requestCode, resultCode, data); } //twitter登录回调 private void setUpTwitterButton() { mBtnTwitter.setCallback(new Callback<TwitterSession>() { @Override public void success(com.twitter.sdk.android.core.Result<TwitterSession> result) { TwitterAuthToken authToken = result.data.getAuthToken(); userId = result.data.getUserId() + ""; name = result.data.getUserName(); getTwitterInfo(authToken, name, userId); } @Override public void failure(TwitterException e) { e.printStackTrace(); } }); } //获取用户信息 private void getTwitterInfo(final TwitterAuthToken token, final String name, final String userId) { new Thread(new Runnable() { @Override public void run() { TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig(); URL url; try { url = new URL("https://api.twitter.com/1.1/users/show.json?screen_name=" + name + "&user_id=" + userId); HttpURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setRequestMethod("GET"); Map<String, String> par = new HashMap<>(); par.put("screen_name", name); par.put("user_id", userId); OAuth1aService.signRequest(authConfig, token, conn, par); conn.connect(); InputStreamReader in = new InputStreamReader(conn.getInputStream()); BufferedReader buffer = new BufferedReader(in); String inputLine; String resultData = ""; while (((inputLine = buffer.readLine()) != null)) { resultData += inputLine + "\n"; } JSONObject jo = new JSONObject(resultData); imgUrl = jo.getString("profile_image_url"); goLogin(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } }).start(); } //TODO:got the token,Notify server,and do something private void goLogin() { }}
0 0
- android中使用Twitter登陆获取用户信息
- Android Twitter第三方登录&获取用户信息
- android Facebook登陆获取用户信息
- android Line登陆获取用户信息
- 登陆获取用户信息
- QQ登陆获取用户信息
- Android中集成google play 登陆来获取用户名、邮件地址、token等用户信息
- android腾讯开放平台登陆授权,获取用户信息
- 整合Spring Security3,在JSP中获取当前登陆用户信息
- 使用DevDefined.OAuth实现新浪登陆并获取用户信息
- QQ登陆,获取QQ用户信息
- Android 中使用session机制保存用户信息
- Android 中使用session机制保存用户信息
- android获取用户信息
- Android获取用户信息新思路
- sharepoint 中获取用户信息
- ASP.Net 获取登陆用户信息方法
- 使用Twitter接口获取twitter内容
- 句柄是什么?
- Linux下安装Composer
- 【后缀数组】BZOJ1031(JSOI2007)[字符加密Cipher]题解
- 编写.gitignore文件时踩的坑
- 深度学习框架:tiny_dnn分析(2) ————分析sample代码
- android中使用Twitter登陆获取用户信息
- Handler,Lopper,Message,MessageQueue关系
- 浅析C语言的非局部跳转:setjmp和longjmp
- android7.x Launcher3源码解析(1)---启动流程
- RxJava之二——Single和Subject
- QT模态对话框与非模态对话框
- 方格取数 多线程动态规划
- Unity StartCoroutine 协同程序
- 实现底部导航栏中间凸起,(点击中间凸出按钮弹出菜单)