新浪微博oauth认证

发布于 2021-11-12 00:57:33 字数 29 浏览 1014 评论 8

新浪微博oauth1.0认证登陆修改什么地方才能兼容2.0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

沦落红尘 2021-11-18 16:33:13

我不要安卓的我要Java的,哥你有吗

蓝颜夕 2021-11-18 06:30:38

layout/sina.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnGrant"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="授权" />

    <Button
        android:id="@+id/btnSend"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="发送微博信息" />

    <TextView
        android:id="@+id/tvResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

灵芸 2021-11-17 22:11:22

依赖:weibo.sdk.android.sso.jar  点击进入下载页

    final static String APP_KEY = "3203320113";
	final static String APP_SECRECT = "ddded0bba4e7608945957861f5c3586d";
	final static String APP_CALLBACK_URL = "http://127.0.0.1"; // 回调地址

	static Context context;

	Button btnGrant, btnSend;
	TextView tvResult;

	Weibo weibo;
	static Oauth2AccessToken token;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sina);
		context = this;

		btnGrant = (Button) findViewById(R.id.btnGrant);
		btnGrant.setOnClickListener(listener);

		btnSend = (Button) findViewById(R.id.btnSend);
		btnSend.setOnClickListener(listener);

		tvResult = (TextView) findViewById(R.id.tvResult);
		
		weibo = Weibo.getInstance(APP_KEY, APP_CALLBACK_URL);
	}

	OnClickListener listener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			if (v.getId() == R.id.btnGrant) {
				weibo.authorize(context, new AuthDialogListener());
			}
			else if (v.getId() == R.id.btnSend) {
				StatusesAPI api = new StatusesAPI(SinaMainActivity.token);
				api.update("hello world", null, null, new RequestListener() {
					@Override
					public void onIOException(final IOException exception) {
						tvResult.post(new Runnable() {
							@Override
							public void run() {
								tvResult.setText("exception:"+exception.getMessage());
							}
						});
					}

					@Override
					public void onError(final WeiboException exception) {
						tvResult.post(new Runnable() {
							@Override
							public void run() {
								tvResult.setText("exception:"+exception.getMessage());
							}
						});
					}

					@Override
					public void onComplete(final String result) {
						tvResult.post(new Runnable() {
							@Override
							public void run() {
								tvResult.setText(result);
							}
						});
					}
				});
			}
		}
	};

	class AuthDialogListener implements WeiboAuthListener {
		@Override
		public void onCancel() {
			Toast.makeText(context, "On Cancel", Toast.LENGTH_LONG).show();
		}

		@Override
		public void onComplete(Bundle bundle) {
			String token = bundle.getString("access_token");
			String expires = bundle.getString("expires_in");
			SinaMainActivity.token = new Oauth2AccessToken(token, expires);
			if (SinaMainActivity.token.isSessionValid()) {
				Toast.makeText(context, "授权成功", Toast.LENGTH_LONG).show();
			}
		}

		@Override
		public void onError(final WeiboDialogError error) {
			tvResult.post(new Runnable() {
				@Override
				public void run() {
					tvResult.setText("error:"+error.getMessage());
				}
			});
		}

		@Override
		public void onWeiboException(final WeiboException exception) {
			tvResult.post(new Runnable() {
				@Override
				public void run() {
					tvResult.setText("exception:"+exception.getMessage());
				}
			});
		}
	};

如果 这样可以帮你搞定 选我为最佳答案  我缺少点积分

如此安好 2021-11-17 20:15:27

不会啊,所以我才问的

小情绪 2021-11-17 16:52:02

oauth 1.0 已经逐渐被放弃了  为什么不用 oauth 2.0

叹沉浮 2021-11-17 04:00:58

哥,你是不是会,给我个例子不,我第一次刚拿到一个1.0的授权拿不到

顾忌 2021-11-16 21:58:51

回复
官方给的文档已经够详细了啊!各方面都讲到了,耐心往下看。V1迁移到V2主要需要完成OAuth1.0到OAuth2.0的过度及完成V1原有接口与V2中新接口的对应替换。这还需要例子吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文