當前位置:首頁 » 代理許可 » 新浪微博自動授權實現

新浪微博自動授權實現

發布時間: 2021-01-10 12:49:01

① QQ,新浪微博如何進行授權

可以從以下進行授權:

一,打開新浪微博,點擊右上角的按鈕,在出現的下拉列表中點擊「帳號設置」。

② php 利用新浪微博API 自動授權

新浪的php有例子的,你直接照著他的來就行了。獲取access_token的地方在callback.php里,你先看懂例內子。$c = new SaeTClientV2( WB_AKEY , WB_SKEY , $token['access_token'] );最後你會這容樣得到$token['access_token'];這個就是了。它的期限是根據你的開發者等級來提高的,一開始可能是1天或者7天,當你流量上去了就可以申請更高等級的了,最高的是30天貌似。而且有一個expires_in的參數是專門用來記錄保質期的。

③ 新浪微博 如何做到只授權不登陸。

強制登錄

授權頁會默認讀取當前用戶的新浪微博登錄內狀態,如果你想讓用戶重新登錄,請在調容用authorize介面時傳入參數:forcelogin=true,默認不填寫此參數相當於forcelogin=false。

④ 新浪微博的授權是什麼意思

比如有個人做了一個網站,但不是新浪公司做得。那個網站如果取得了新浪的授權,你就可以直接登陸那個網站,而不需要去注冊。 授權是經過新浪加密的,所以,一般不存在透露密碼等安全問題。可以放心使用。

⑤ 如何使新浪微博支持SSO授權

  1. 添加URL scheme,在你的工程設置項,targets 一欄下,選中自己的 target,在 Info->URL Types 中添加 URL Schemes,此值是 sso 登錄時回調時所用。如果使用的是Xcode3或更低版本,則需要在plist文件中添加。如果你使用我們默認的新浪微博賬號的話,將url scheme修改為「sinaweibosso.126663232」,否則是「sinaweibosso.你的新浪微博appkey」

    在你的`AppDelegate`文件裡面`#import "UMSocialSnsService.h"`並實現下面的方法:

    - (BOOL)application:(UIApplication *)application

    openURL:(NSURL *)url

    sourceApplication:(NSString *)sourceApplication

    annotation:(id)annotation

    {

    // 如果你除了使用我們sdk之外還要處理另外的url,你可以把`handleOpenURL:wxApiDelegate:`的實現復制到你的代碼裡面,再添加你要處理的url。

    return [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];

    }

⑥ 如何使新浪微博支持SSO授權

sso授權,指的是通過一鍵點擊的簡單方式喚起微博客戶端行為的授權的方式,因為操作簡單,所以作為很多應用的第三方登錄的選擇。
當然,你想使用這個功能,首先你得有本地客戶端,否則的話,會使用web的授權方式,慢慢的輸入你的賬戶和密碼來獲取授權。

在編碼前,你得為此做些簡單的准備工作。
1.下載官方的SDK,在裡面有實例和MD5的簽名工具。
官方SDK
在裡面的簽名工具,根據你輸入的包名來得到MD5值,你需要這個值來正確的創建應用。
在裡面的還有weiboSDK,你需要把它加入你的應用中,引用其中的方法。

2.在清單中加入訪問網路的許可權
3.你需要在新浪的開放平台創建應用。
創建應用吧!

定義授權參數的介面:
(老實說,我是直接的demo,改為自己的授權信息就可以了)。

[html] view plainprint?
public interface Constants {

/** 當前 DEMO 應用的 APP_KEY,第三方應用應該使用自己的 APP_KEY 替換該 APP_KEY */
public static final String APP_KEY = "1608434710";

public static final String REDIRECT_URL = "http://www.sina.com";

public static final String SCOPE =
"email,direct_messages_read,direct_messages_write,"
+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
+ "follow_app_official_microblog," + "invitation_write";
}

緩存授權信息:

[html] view plainprint?
/**
* 該類定義了微博授權時所需要的參數。
*/
public class AccessTokenKeeper {
private static final String PREFERENCES_NAME = "com_weibo_sdk_android";
private static final String KEY_UID = "uid";
private static final String KEY_ACCESS_TOKEN = "access_token";
private static final String KEY_EXPIRES_IN = "expires_in";

/**
* 保存 Token 對象到 SharedPreferences。
*
* @param context 應用程序上下文環境
* @param token Token 對象
*/
public static void writeAccessToken(Context context, Oauth2AccessToken token) {
if (null == context || null == token) {
return;
}

SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
Editor editor = pref.edit();
editor.putString(KEY_UID, token.getUid());
editor.putString(KEY_ACCESS_TOKEN, token.getToken());
editor.putLong(KEY_EXPIRES_IN, token.getExpiresTime());
editor.commit();
}

/**
* 從 SharedPreferences 讀取 Token 信息。
*
* @param context 應用程序上下文環境
*
* @return 返回 Token 對象
*/
public static Oauth2AccessToken readAccessToken(Context context) {
if (null == context) {
return null;
}

Oauth2AccessToken token = new Oauth2AccessToken();
SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
token.setUid(pref.getString(KEY_UID, ""));
token.setToken(pref.getString(KEY_ACCESS_TOKEN, ""));
token.setExpiresTime(pref.getLong(KEY_EXPIRES_IN, 0));
return token;
}

/**
* 清空 SharedPreferences 中 Token信息。
*
* @param context 應用程序上下文環境
*/
public static void clear(Context context) {
if (null == context) {
return;
}

SharedPreferences pref = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
Editor editor = pref.edit();
editor.clear();
editor.commit();
}
}

集成的sso授權 +獲取用戶名:

[html] view plainprint?
/**
* 該類主要演示如何進行授權、SSO登陸。
*/
public class WBAuthActivity extends Activity implements OnClickListener {
/** 顯示認證後的信息,如 AccessToken */
private TextView mTokenText;
/** 微博 Web 授權類,提供登陸等功能 */
private WeiboAuth mWeiboAuth;
/** 封裝了 "access_token","expires_in","refresh_token",並提供了他們的管理功能 */
private Oauth2AccessToken mAccessToken;
/** 注意:SsoHandler 僅當 SDK 支持 SSO 時有效 */
private SsoHandler mSsoHandler;
/** 用戶信息介面 */
private UsersAPI mUsersAPI;
private Button ssoBtn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acy_sinasso);
initView();
}

public void initView() {
mTokenText = (TextView) findViewById(R.id.tv_txt);
// SSO 授權
ssoBtn = (Button) findViewById(R.id.btn_sso);

// 創建微博實例
mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY,
Constants.REDIRECT_URL, Constants.SCOPE);
// 從 SharedPreferences 中讀取上次已保存好 AccessToken 等信息,
// 第一次啟動本應用,AccessToken 不可用
mAccessToken = AccessTokenKeeper.readAccessToken(this);

if (mAccessToken.isSessionValid()) {
updateTokenView(true);
}
ssoBtn.setOnClickListener(this);
}

/**
* 當 SSO 授權 Activity 退出時,該函數被調用。
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// SSO 授權回調
// 重要:發起 SSO 登陸的 Activity 必須重寫 onActivityResult
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}

/**
* 微博認證授權回調類。 1. SSO 授權時,需要在 {@link #onActivityResult} 中調用
* {@link SsoHandler#authorizeCallBack} 後, 該回調才會被執行。 2. 非 SSO
* 授權時,當授權結束後,該回調就會被執行。 當授權成功後,請保存該 access_token、expires_in、uid 等信息到
* SharedPreferences 中。
*/
class AuthListener implements WeiboAuthListener {
// 授權完成
@Override
public void onComplete(Bundle values) {
// 從 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// 顯示 Token
updateTokenView(false);

// 保存 Token 到 SharedPreferences
AccessTokenKeeper.writeAccessToken(WBAuthActivity.this,
mAccessToken);
Toast.makeText(WBAuthActivity.this, "success!!",
Toast.LENGTH_SHORT).show();

// 根據uid 獲取用戶的昵稱,因為uid是在回調方法從伺服器傳遞過來的數據中。
long uid = Long.parseLong(mAccessToken.getUid());
mUsersAPI.show(uid, mListener);
} else {
// 以下幾種情況,您會收到 Code:
// 1. 當您未在平台上注冊的應用程序的包名與簽名時;
// 2. 當您注冊的應用程序包名與簽名不正確時;
// 3. 當您在平台上注冊的包名和簽名與您當前測試的應用的包名和簽名不匹配時。
Toast.makeText(WBAuthActivity.this, "fail", Toast.LENGTH_LONG)
.show();
}
}

// 取消授權
@Override
public void onCancel() {
Toast.makeText(WBAuthActivity.this, "cancel", Toast.LENGTH_LONG)
.show();
}

// 授權異常
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(WBAuthActivity.this,
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}

/**
* 顯示當前 Token 信息。 配置文件中是否已存在 token 信息並且合法
*/
public void updateTokenView(boolean hasExisted) {
// 獲取用戶信息介面
mUsersAPI = new UsersAPI(mAccessToken);

String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(mAccessToken.getExpiresTime()));
String format = getString(R.string.weibosdk_demo_token_to_string_format_1);
mTokenText
.setText(String.format(format, mAccessToken.getToken(), date));
String message = String.format(format, mAccessToken.getToken(), date);
if (hasExisted) {
message = getString(R.string.weibosdk_demo_token_has_existed)
+ "\n" + message;
// 根據uid 獲取用戶的昵稱,因為uid是在回調方法從伺服器傳遞過來的數據中。
long uid = Long.parseLong(mAccessToken.getUid());
mUsersAPI.show(uid, mListener);
}
mTokenText.setText(message);
}

/**
* 微博 OpenAPI 回調介面。
*/
private RequestListener mListener = new RequestListener() {
@Override
public void onComplete(String response) {
if (!TextUtils.isEmpty(response)) {
// 調用 User#parse 將JSON串解析成User對象
User user = User.parse(response);
if (user != null) {
Toast.makeText(WBAuthActivity.this,
"獲取User信息成功,用戶昵稱:" + user.screen_name,
Toast.LENGTH_LONG).show();
mTokenText.setText(user.screen_name);
} else {
Toast.makeText(WBAuthActivity.this, response,
Toast.LENGTH_LONG).show();
}
}
}

@Override
public void onWeiboException(WeiboException e) {
ErrorInfo info = ErrorInfo.parse(e.getMessage());
Toast.makeText(WBAuthActivity.this, info.toString(),
Toast.LENGTH_LONG).show();
}
};

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == ssoBtn) {
mSsoHandler = new SsoHandler(WBAuthActivity.this, mWeiboAuth);
mSsoHandler.authorize(new AuthListener());
}
}
}

布局:

[html] view plainprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<com.sina.weibo.sdk.widget.LoginButton
android:id="@+id/btn_sso"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />

<TextView
android:id="@+id/tv_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="info" />

</LinearLayout>

⑦ 新浪微博如何給應用授權和取消授權

授權步驟:

1、以給「聚美優品」授權為例。打開「聚美優品」網站,點擊「登錄」。

⑧ 新浪微博oauth2.0授權怎麼弄的

新浪微博開放平台提供了豐富的API介面,利用這些介面,開發者能夠開發出獨具特色的微博應用。但是,大部分介面都需要用戶授權給應用,應用利用授權得到的Access Token來調用相應的介面來獲取內容。

獲取授權的步驟如下:

進入新浪微博開放平台,進入「管理中心「,點擊」創建應用」,選擇「網頁應用」,填寫相應的信息後提交;

在「管理中心」-「我的應用」中查看信息,在「應用信息」-「高級信息」中可以設置網站的授權回調頁和取消授權回調頁;

引導需要授權的用戶到如下頁面:

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

YOUR_CLIENT_ID:即應用的AppKey,可以在應用基本信息里查看到。

YOUR_REGISTERED_REDIRECT_URI:即之前填寫的授權回調頁,注意一定要完全相同;

授權成功後 開發者可以訪問如下頁面得到Access Token:

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

⑨ 在支付寶上面看了一篇文章,准備分享到新浪微博,被自動和新浪微博授權,如何解除

那就不要分享支付寶鏈接到微博,必須授權賬號才可以相互同步

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837