如题所述
新浪微博API授权问题:回拨地址如何填写?
可以在高阶应用资讯里面修改域名系结 Host下修改127.0.0.1指向你的回拨域名
关于新浪微博API回拨地址的问题
设定成引数,每次字串查加就可以了
求助,新浪微博授权问题?
你把你登入后的资讯储存到一个SharedPreferences中。然后就可以呼叫判断了,没有登入的话就让他跳到授权页面,这样例子,本社群就有几个,你找找看。。。。
怎么在app里设定新浪微博的授权回拨页
新浪的SDK里有
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o- > getRequestToken();
$aurl = $o- > getAuthorizeURL( $keys['oauth_token'] ,false , $_SERVER['SCRIPT_URI'].'/callback.php');
关于360授权新浪微博问题
你好朋友这情况应当是你登入360的网站或360安全卫士,建议你退出后就会显示不线上了。
如何让新浪微博授权给vivo
请问您的手机是什么机型呢?您可以进入i管家--软体管理--软体许可权管理中找到新浪微博并开启相应的许可权的。
新浪微博如何授权一直播
下载一直播后使用新浪微博登陆即可,或者再已经注册的一直播app内系结新浪微博。
如何使新浪微博支援SSO授权
- sso授权,指的是通过一键点选的简单方式唤起微部落格户端行为的授权的方式,因为操作简单,所以作为很多应用的第三方登入的选择。
新浪微博
下载官方的SDK,在里面有例项和MD5的签名工具。
官方SDK
在里面的签名工具,根据你输入的包名来得到MD5值,你需要这个值来正确的建立应用。
在里面的还有weiboSDK,你需要把它加入你的应用中,引用其中的方法。
在清单中加入访问网路的许可权
需要在新浪的开放平台建立应用。
建立应用吧!
定义授权引数的介面:
(老实说,我是直接copy的demo,改为自己的授权资讯就可以了)。
[] view plaincopyprint?
public interface Constants {
/** 当前 DEMO 应用的 APP_KEY,第三方应用应该使用自己的 APP_KEY 替换该 APP_KEY */
public static final String APP_KEY = "1608434710";
public static final String REDIRECT_URL = ":sina.";
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";
}
快取授权资讯:
[] view plaincopyprint?
/**
* 该类定义了微博授权时所需要的引数。
*/
public class AessTokenKeeper {
private static final String PREFERENCES_NAME = "_weibo_sdk_android";
private static final String KEY_UID = "uid";
private static final String KEY_ACCESS_TOKEN = "aess_token";
private static final String KEY_EXPIRES_IN = "expires_in";
/**
* 储存 Token 物件到 SharedPreferences。
*
* @param context 应用程式上下文环境
* @param token Token 物件
*/
public static void writeAessToken(Context context, Oauth2AessToken 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.mit();
}
/**
* 从 SharedPreferences 读取 Token 资讯。
*
* @param context 应用程式上下文环境
*
* @return 返回 Token 物件
*/
public static Oauth2AessToken readAessToken(Context context) {
if (null == context) {
return null;
}
Oauth2AessToken token = new Oauth2AessToken();
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.mit();
}
}
整合的sso授权 +获取使用者名称:
[] view plaincopyprint?
/**
* 该类主要演示如何进行授权、SSO登陆。
*/
public class WBAuthActivity extends Activity implements OnClickListener {
/** 显示认证后的资讯,如 AessToken */
private TextView mTokenText;
/** 微博 Web 授权类,提供登陆等功能 */
private WeiboAuth mWeiboAuth;
/** 封装了 "aess_token","expires_in","refresh_token",并提供了他们的管理功能 */
private Oauth2AessToken mAessToken;
/** 注意: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 中读取上次已储存好 AessToken 等资讯,
第一次启动本应用,AessToken 不可用
mAessToken = AessTokenKeeper.readAessToken(this);
if (mAessToken.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
* 授权时,当授权结束后,该回调就会被执行。 当授权成功后,请储存该 aess_token、expires_in、uid 等资讯到
* SharedPreferences 中。
*/
class AuthListener implements WeiboAuthListener {
授权完成
@Override
public void onComplete(Bundle values) {
从 Bundle 中解析 Token
mAessToken = Oauth2AessToken.parseAessToken(values);
if (mAessToken.isSessionValid()) {
显示 Token
updateTokenView(false);
储存 Token 到 SharedPreferences
AessTokenKeeper.writeAessToken(WBAuthActivity.this,
mAessToken);
Toast.makeText(WBAuthActivity.this, "suess!!",
Toast.LENGTH_SHORT).show();
根据uid 获取使用者的暱称,因为uid是在回拨方法从伺服器传递过来的资料中。
long uid = Long.parseLong(mAessToken.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(mAessToken);
String date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
.format(new java.util.Date(mAessToken.getExpiresTime()));
String format = getString(R.string.weibosdk_demo_token_to_string_format_1);
mTokenText
.setText(String.format(format, mAessToken.getToken(), date));
String message = String.format(format, mAessToken.getToken(), date);
if (hasExisted) {
message = getString(R.string.weibosdk_demo_token_has_existed)
+ "\n" + message;
根据uid 获取使用者的暱称,因为uid是在回拨方法从伺服器传递过来的资料中。
long uid = Long.parseLong(mAessToken.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());
}
}
}
布局:
[] view plaincopyprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=":schemas.android./apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<.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>
4.当然,想使用这个功能,首先得有本地客户端,否则的话,会使用web的授权方式,慢慢的输入账户和密码来获取授权。
使新浪微博支援SSO授权有以下步骤:
新增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]; }
如果是2.1.3 以上版本:
新增URL scheme,在你的工程设定项,targets 一栏下,选中自己的 target,在 Info->URL Types 中新增 URL Schemes,此值是 sso 登入时回拨时所用。如果使用的是Xcode3或更低版本,则需要在plist档案中新增。将url scheme修改为“sina.你的友盟appkey”。
demo中没有#import "UMSocialSnsService.h"档案,单击#import "UMSocial.h"即可。
需要系结安全域名为whalecloud.,检查一下授权回拨页是不是填写了,修改为:sns.whalecloud./sina2/callback就可以。
新增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];
}