mobileresearch / weibo_android_sdk Goto Github PK
View Code? Open in Web Editor NEWsina weibo android sdk
sina weibo android sdk
为什么有RemindAPI文档但没有Java代码呢?
基于你们官方的demo做测试,发现不能调用到回调。 反编译SDK后,发现应该是SDK的bug。
// 获取token测试button
findViewById(R.id.auth).setOnClickListener(new OnClickListener() {
@OverRide
public void onClick(View v) {
mWeibo.anthorize(MainActivity.this, new AuthDialogListener());
}
});
public void anthorize(final Context ct, final WeiboAuthListener mlistener) {
this.mlistener = mlistener;
this.ct = ct;
Weibo.mPackagename = this.ct.getApplicationContext().getPackageName();
Weibo.isWifi = Utility.isWifi(this.ct);
this.startAuthDialog(ct, mlistener, 0);
}
在anthorize里,准备好参数后,调用startAuthDialog打开WeiboDialog,并设置回调函数
public void startAuthDialog(final Context context, final WeiboAuthListener weiboAuthListener, final int n) {
final WeiboParameters weiboParameters = new WeiboParameters();
CookieSyncManager.createInstance(context);
this.startDialog(context, weiboParameters, new WeiboAuthListener() {
public void onCancel() {
weiboAuthListener.onCancel();
}
public void onComplete(final Bundle bundle) {
CookieSyncManager.getInstance().sync();
final String string = bundle.getString("code");
if (1 == n) {
Weibo.FtchAccessToken(string);
}
else if (n == 0) {
Weibo.KeepAccessToken(bundle, weiboAuthListener);
return;
}
}
public void onError(final WeiboDialogError weiboDialogError) {
weiboAuthListener.onError(weiboDialogError);
}
public void onWeiboException(final WeiboException ex) {
weiboAuthListener.onWeiboException(ex);
}
});
}
而KeepAccessToken的实现是:
private void KeepAccessToken(final Bundle bundle, final WeiboAuthListener weiboAuthListener) {
if (bundle.getString("code") == null) {
final String string = bundle.getString("access_token");
final String string2 = bundle.getString("expires_in");
if (TextUtils.isEmpty(string) || TextUtils.isEmpty(string2)) {
weiboAuthListener.onWeiboException(new WeiboException("\u6388\u6743\u5931\u8d25\uff01"));
return;
}
final Oauth2AccessToken oauth2AccessToken = new Oauth2AccessToken(string, string2);
if (oauth2AccessToken.isSessionValid()) {
AccessTokenKeeper.keepAccessToken(this.ct, oauth2AccessToken);
Toast.makeText(this.ct, this.ct.getString(R.string.auth_succ), 0).show();
weiboAuthListener.onComplete(bundle);
return;
}
}
}
当用户发起授权时,微博服务端返回redirect并在query_string中带了code信息。 当n==0时,调用KeepAccessToken,因为bundle.getString("code")不为null,因此直接返回了,即授权在本地没做任何处理。
即使将n设置为1,也不会触发传入的listener。
error_code=21337, error:appkey permission denied是啥意思
帐号已经审核通过了。
在http://open.weibo.com/wiki/Error_code 错误代码里也没找到
09-13 15:48:02.422: E/AndroidRuntime(2795): android.content.res.Resources$NotFoundException: String resource ID #0x7f07002c
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.content.res.Resources.getText(Resources.java:230)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.content.res.Resources.getString(Resources.java:314)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.content.Context.getString(Context.java:327)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.Weibo.KeepAccessToken(Weibo.java:178)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.Weibo.access$2(Weibo.java:160)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.Weibo$2.onComplete(Weibo.java:139)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.WeiboDialog.handleRedirectUrl(WeiboDialog.java:334)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.WeiboDialog.access$1(WeiboDialog.java:327)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.weibo.sdk.android.WeiboDialog$WeiboWebViewClient.onPageStarted(WeiboDialog.java:299)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:314)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.os.Handler.dispatchMessage(Handler.java:99)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.os.Looper.loop(Looper.java:137)
09-13 15:48:02.422: E/AndroidRuntime(2795): at android.app.ActivityThread.main(ActivityThread.java:5227)
09-13 15:48:02.422: E/AndroidRuntime(2795): at java.lang.reflect.Method.invokeNative(Native Method)
09-13 15:48:02.422: E/AndroidRuntime(2795): at java.lang.reflect.Method.invoke(Method.java:511)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
09-13 15:48:02.422: E/AndroidRuntime(2795): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
09-13 15:48:02.422: E/AndroidRuntime(2795): at dalvik.system.NativeStart.main(Native Method)
这里面少的资源文件是不是需要我们添加?都不给提示的?!
本人是新手。
使用新版DEMO的SSO时,发生crash。
在
class AuthDialogListener implements WeiboAuthListener下的public void onComplete(Bundle values) 中
能够获取code,但是无法获取access_token
。
点击授权之后,会弹出一个需要登录的窗口。
但是在4.0系统上都是可以正常的,不知道是不是BUG,希望能尽快回复。
upload_url_text上传带图片的微博 提示20007错误 Does multipart has image, upload_url_text是个高级接口,之前已经申请完权限,并且能够正常上次带图片的微博
我在新浪注册的应用中的app key和app secret不能授权,我换成一个朋友的app key和app secret可以授权,我们的回调地址都一样,测试账号也加了。请问这是为什么?同一个程序,换一对app key和app secret就不一样,就是是账号的问题,请我的账号有什么问题?我注册的应用名称是nnweibc,帮我查一下吧
如题
I'm using this jar to implement authorization through Weibo Android Application. Clicking com.weibo.sdk.view.LoginButton
DOES SEND Intent
to Android Weibo Application,
and my Activity
DOES RECEIVE some kind of Intent
from Android Weibo Application.
So I called
SsoHandler.authorizeCallBack(requestCode, resultCode, data);
in the onActivityResult(int requestCode, int resultCode, Intent data)
But this code didn't call onComplete
function of my WeiboAuthListener
, and just shows another weibo login dialog which shows up when I call
void com.weibo.sdk.android.sso.SsoHandler.authorizeCallBack(int requestCode,
int resultCode,
Intent data)
So I decompiled the jar file and what's happening.
There, I could find out why.
The Extra
data of Intent
got from onActivityResult has only "code"
as its key.
But this SDK assumes that Android Weibo Application returns perfect access token data like "access_token"
, "expires_in"
, and "refresh_token"
.
So the SDK think that the authorization has failed, thus we must try authorization again not using Android Weibo Application.
I think this needs immediate fix.
I'm using Android Weibo Application version 4.0.1, the most current one.
如果有客户端返回数据正常~
v2.1版SDK还是重复初相授权页面,两次授权,第一次SSO流程选择帐号-->允许-->再次弹出webview页面要求输入帐号密码-->授权登录后报错,说是类型转换异常,(long型数据)
I'm still seeing this problem within latest Android SDK, any suggestions?
WeiboApi.responseListener(getIntent(), this);
这个接口没作用,收不到回调。
demo也是一样的情况!
12-24 16:47:15.570: E/AndroidRuntime(17398): java.lang.NullPointerException
12-24 16:47:15.570: E/AndroidRuntime(17398): at com.weibo.sdk.android.demo.MainActivity$AuthDialogListener.onComplete(MainActivity.java:135)
12-24 16:47:15.570: E/AndroidRuntime(17398): at com.weibo.sdk.android.Weibo$1.onComplete(Weibo.java:83)
12-24 16:47:15.570: E/AndroidRuntime(17398): at com.weibo.sdk.android.WeiboDialog.handleRedirectUrl(WeiboDialog.java:238)
12-24 16:47:15.570: E/AndroidRuntime(17398): at com.weibo.sdk.android.WeiboDialog.access$1(WeiboDialog.java:231)
12-24 16:47:15.570: E/AndroidRuntime(17398): at com.weibo.sdk.android.WeiboDialog$WeiboWebViewClient.onPageStarted(WeiboDialog.java:206)
网络关闭后,调用anthorize crash
而sdk内提供的Demo则不会crash提示
无法联系网络,请检查网络配置
这个字符串的id写在sdk内了吧
替换了APP_KEY 运行,可以OAUTH,但注册到微博时后台显示错误
Failed to find provider info for com.sina.weibo.sdkProvider
WeiboApiImpl registerApp() failed winfo == null
检测是否支持SDK显示为否的
后台打印supportApi为-1
之后试过直接adb install 微博Demo示例,还是这个状况,请问我是哪里搞错了?(我是用2.3最新版的)
谢谢
原大小为480_1439 的png图片,调用upload发送至微博后被压缩成了240_674,原图大小69.3k,为什么被压缩了呢?有没有什么办法解决?
Found on CDMA & GSM dual SIM Phone. When 3G enabled on CDMA, weibo SDK is not functioning on API call, only return NoHttpResponseException:The target server failed to respond.
It seems the APN setting is not correct.
你以为大家都用新浪微博啊?还调用微薄客户端分享,再没客户端的时候还提示不支持,SB
新浪微博的android应用需要验证应用的md5签名,否则用户无法用微博登陆。
比如,开发版本的md5就和发布的正式版的md5不同,发布正式版后,必须在微博后台更新md5签名,用户才能正常登陆。而且如果将来软件有不同版本,如2.0 3.0,可能也需要更新md5,那这样,老版本就无法登陆微博了。
请问这种情况应该怎么处理?
验证md5签名的初衷是好的,但不解决版本问题就会有大麻烦。应该支持多个签名。
我这边程序默认是全屏显示的,但是WeiboDialog貌似不是全屏显示的这样的话在调用的时候认证的dialog显示不全界面非常难看,不知道sdk里面是否有全屏显示的设置?
1.官方api流程
a、OAuth2/authorize,get获取code
b、Oauth2/access_token,post方式获取token
2.官方例子
a、OAuth2/authorize,设置 response_type=toke,get方式一次性取到
3.google到的解释
http://www.cocoachina.com/bbs/simple/?t94142.html
既然是官方的文档,希望可以遵循当前最新的规则,不然会给开发者带来迷惑。谢谢
验证一次,onComplete响应两次,而且获取code后还有一个loading的Dialog一直显示,要敲击下屏幕才会消失,请问是怎么回事啊?
rt
如果不会 我可以教你 或者去google
只有demo的源码,没有SDK本身的源码?
overwrite weibo.sdk.android\src\com\weibo\sdk\android\WeiboDialog.cancel(),
or client code won't get informed.
这个回调里面的包括那些key-values值,请不要在文档中用等这个字,你们的文档不说明,难道让我自己去猜测啊
1:文档里面写建立WEIBO实例后注册应用程序包名和签名,在哪里注册?没有任何接口函数,网站管理控制台也没有这些项目
2:开始anthorize后弹出认证页面在横屏时显示不全(800*480分辨率)
3:授权成功后仅返回CODE,不返回ACCESS_TOKEN,而且屏幕上还是继续LOADING,大约10秒后直接将应用程序CRASH
4:改用SSOHANDLER方式,出现绿色的登录页面后又无限制的循环进入红色的页面方式的登录页面
谁能帮帮我?
你好, 我import 了你們的weibo.sdk.android.demo 來作測試. 但在WeiboAuthListener 時,拿回的"access_token" 和"expires_in"是null,
如我只是安裝weibo.sdk.android.demo.apk 是沒有這問題,請問為什么會這樣子?
Is the file missing in the Repository?
新浪微博app已登录。
demo中选登陆sso,loading之后直接出现到达授权界面,选择允许授权。之后出现短暂的loading,之后直接跳回到需要输入用户名和密码的登陆界面。
如此无限循环。
我直接运行的官方demo程序,只修改了app_key和redirect_url。此外没有任何修改,请问可能的原因有哪些?
sso授权的时候,只弹出一个toast“身份过期 请重新登录”
《Weibo_Android_SDK开发手册》中的错别字:
PDF文档第1页:用户登录完成后最后悔跳转此地址... “最后悔”应该为“最后会”。
PDF文档第2页:在使用 SDK 时,配置授权毁掉也是必不可少的...“毁掉也是”应该为“回调也是”。
唉,都是拼音输入法惹出来的事儿……
apiBtn未实例化,报空指针异常
2个应用,一样的创建方式,以前的可以正常运行,新申请的不行!
mLoginBt = (LoginButton) findViewById(R.id.login_bt);
mLoginBt.setCurrentActivity(this);
mLoginBt.setAuthListener(mLoginListener);
如何设置app key???
Could you give instructions how to correctly logout with weibo_android_sdk?
能不能把.project .classpath文件也提交上来,目前这样eclipse都不能识别工程,搞起来麻烦啊..
在根目录下直接的***.sso.jar是否是独立完整的.jar可以直接使用?越看文档越糊涂!
新版DEMO和我自己测试的APP中通过SSO授权后,又会弹出网页授权,还得手动输入一次~
已经按要求在网上和代码中都添加了OAuth2.0客户端默认回调页:https://api.weibo.com/oauth2/default.html
使用的方法和DEMO中一致,不知道是哪里还需要修改?
您好 为什么 我用sso授权 新浪客户端已经登入过了 还会 在webview让用户输入用户名和密码?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.