当前位置:首页 » 安卓系统 » android开发新浪微博客户端

android开发新浪微博客户端

发布时间: 2022-11-16 22:09:00

‘壹’ 新浪微博android客户端问题!!!!求大神解决。。。

OAuth.java这个文件能看源码?
估计调用的 是decode(String s),而不是decode(String s,String enc),
前一种方法JAVA API种明确了 不赞成 使用,它会去调第二个 ,带一个dfltEncName 值,这个值为空就 会 抛空异常 ;
事实上 ,用第二个 方法要 指定 编码方式,如UTF-8等;
它们的 定义:
/**
* Translates a string into <code>x-www-form-urlencoded</code>
* format. This method uses the platform's default encoding
* as the encoding scheme to obtain the bytes for unsafe characters.
*
* @param s <code>String</code> to be translated.
* @deprecated The resulting string may vary depending on the platform's
* default encoding. Instead, use the encode(String,String)
* method to specify the encoding.
* @return the translated <code>String</code>.
*/
@Deprecated
public static String encode(String s) {

String str = null;

try {
str = encode(s, dfltEncName);
} catch (UnsupportedEncodingException e) {
// The system should always have the platform default
}

return str;
}

/**
* Translates a string into <code>application/x-www-form-urlencoded</code>
* format using a specific encoding scheme. This method uses the
* supplied encoding scheme to obtain the bytes for unsafe
* characters.
* <p>
* <em><strong>Note:</strong> The <a href=
* "http://www.w3.org/TR/html40/appendix/notes.html#non-ascii-chars">
* World Wide Web Consortium Recommendation</a> states that
* UTF-8 should be used. Not doing so may introce
* incompatibilites.</em>
*
* @param s <code>String</code> to be translated.
* @param enc The name of a supported
* <a href="../lang/package-summary.html#charenc">character
* encoding</a>.
* @return the translated <code>String</code>.
* @exception UnsupportedEncodingException
* If the named encoding is not supported
* @see URLDecoder#decode(java.lang.String, java.lang.String)
* @since 1.4
*/
public static String encode(String s, String enc)
throws UnsupportedEncodingException {

boolean needToChange = false;
StringBuffer out = new StringBuffer(s.length());
Charset charset;
CharArrayWriter charArrayWriter = new CharArrayWriter();

if (enc == null)
throw new NullPointerException("charsetName");

try {
charset = Charset.forName(enc);
} catch (IllegalCharsetNameException e) {
throw new UnsupportedEncodingException(enc);
} catch (UnsupportedCharsetException e) {
throw new UnsupportedEncodingException(enc);
}

for (int i = 0; i < s.length();) {
int c = (int) s.charAt(i);
//System.out.println("Examining character: " + c);
if (dontNeedEncoding.get(c)) {
if (c == ' ') {
c = '+';
needToChange = true;
}
//System.out.println("Storing: " + c);
out.append((char)c);
i++;
} else {
// convert to external encoding before hex conversion
do {
charArrayWriter.write(c);
/*
* If this character represents the start of a Unicode
* surrogate pair, then pass in two characters. It's not
* clear what should be done if a bytes reserved in the
* surrogate pairs range occurs outside of a legal
* surrogate pair. For now, just treat it as if it were
* any other character.
*/
if (c >= 0xD800 && c <= 0xDBFF) {
/*
System.out.println(Integer.toHexString(c)
+ " is high surrogate");
*/
if ( (i+1) < s.length()) {
int d = (int) s.charAt(i+1);
/*
System.out.println("\tExamining "
+ Integer.toHexString(d));
*/
if (d >= 0xDC00 && d <= 0xDFFF) {
/*
System.out.println("\t"
+ Integer.toHexString(d)
+ " is low surrogate");
*/
charArrayWriter.write(d);
i++;
}
}
}
i++;
} while (i < s.length() && !dontNeedEncoding.get((c = (int) s.charAt(i))));

charArrayWriter.flush();
String str = new String(charArrayWriter.toCharArray());
byte[] ba = str.getBytes(charset);
for (int j = 0; j < ba.length; j++) {
out.append('%');
char ch = Character.forDigit((ba[j] >> 4) & 0xF, 16);
// converting to use uppercase letter as part of
// the hex value if ch is a letter.
if (Character.isLetter(ch)) {
ch -= caseDiff;
}
out.append(ch);
ch = Character.forDigit(ba[j] & 0xF, 16);
if (Character.isLetter(ch)) {
ch -= caseDiff;
}
out.append(ch);
}
charArrayWriter.reset();
needToChange = true;
}
}

return (needToChange? out.toString() : s);
}

‘贰’ 新浪微博Android客户端用了哪些开源框架

xmpp协议的即时通讯方案,openfire androidpn,等等。它们都是使用了apache mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过这些东西的源码,发现代码结构不太理想,耦合的情况太多,实在不好扩展。所谓XMPP 协议。只不过是别人使用mina 自定义了一个消息编码解码协议。通俗的讲就是,xml形式消息的编码与解码,我们完全没有必要在国外这套不成熟的openfire 与xmpp 上耗费过多的精力去研究,我们完全可以通过apache mina 自定义自己的通讯协议,并可以为它使用自己的名字。我们不要盲目崇拜国外的有些东西,自己掌握原理,才是最重要的,各位切记~
这套IM系统为我个人自主开发 使用了 apache mina ,主要功能为 服务端和客户端,客户端 到客户端的即时通信,可以支持包括文字 图片,语音等任何消息形式 服务端使用的 struts2+spring3和 apache mina android端 也使用的apache mina。这套IM系统结构还是非常清晰合理的,非常容易扩展和改造,下面是android版本 的 demo的目的是只是一个演示 ,可以参照它的代码,使用这套系统开发自己的东西,核心价值是一套高灵活性,相对标准化的即时通讯解决方案,即时聊天只是它的一种运用途径!

‘叁’ 开发Android新浪微博客户端,想问一下新浪微博开放平台API的注册接口怎么调用啊

这个客户端不是新浪自己开发团队做的?这个也开放?

‘肆’ 利用新浪微博开放平台提供的sdk开发自己的android客户端问题

adroid 自带的sdk是1.5的,sina自带的几个jar包放到android项目中了吗,如果放进去了,你可以去下载缺少的jar包,导进去就可以了

‘伍’ android开发新浪微博客户端问题

你首先要到新浪开源平台上申请个 app key 加入到你的应用中,如何加入适合使用api 新浪开源平台都给出了详细的文档了

‘陆’ 下载了新浪微博Android客户端,如何安装到手机上,我的是LG棒棒糖

新浪微博Android客户端是为Android系统的手机开发的软件,LG棒棒糖不是Android系统,不能用Android系统的软件。LG棒棒糖不是智能机,如果支持Java,只能安装jar后缀的软件,资源比较少,如果新浪微博客户端如果有下载通用版的链接,棒棒糖可以使用这个链接下载的软件,其他的也是如此。LG目前只有几款Android系统的手机,我知道的有GW620、P503、GT540,其他的大多没有上市,只有这些手机才可以使用新浪微博Android客户端,Android软件的格式都是apk格式的,不要看错了。

‘柒’ android开发新浪微博客户端,模拟器运行时出现错误提示Unable to execute dex:

把工程删了重新导入一下就可以了

‘捌’ 最新的新浪微博客户端ANDROID版 SDK到底怎么用

本文介绍了如何在Android程序中使用新浪微博提供的AndroidSDK

微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。

首先我们需要在新浪微博开放平台上进行注册,之后需要创建一个新的应用,并且需要记下应用的APP key,App Secret Key以及设置应用的回调页以便我们在程序中进行使用。此外,还需要在应用的高级信息里添加测试用户的uid,切记切记,否则会出现登陆不成功等怪现象。

接着我们下载微博提供的Android上的SDK,下载地址在这里http。//open。weibo。com/wiki/SDK,选择AndroidSDK进行下载即可。
使用方法:

首先将下载的sdk进行解压,并将其导入到eclipse中,接着在你需要使用sdk的android工程中点击右键,属性,设置library属性,选中刚才导入的weibosdk即可。如图所示

然后在你的工程的Manifest文件中,加入以下权限:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

这样我们就能使用weibosdk了

建立工程以后如何在代码中使用weiboAPI呢,下面就由我来为大家介绍使用方法:
首先在你需要使用微博的Activity中加入以下代码:

Weibo weibo = Weibo.getInstance();
weibo.setupConsumerConfig(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);
weibo.setRedirectUrl("Your URLhere");
weibo.authorize(this,
listener);
注意代码中的Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET即是文章开头介绍的在微博上创建的应用里的两个key,setRedirectUrl中的内容即是在应用中设置的回调页。

Listener则是在进行登陆授权后对执行结果进行处理的Litener,代码如下

public class AuthDialogListener implements WeiboDialogListener {
private Activity context;
private String content;
private String file;
private float lat;
private float lon;
private static boolean isOver=true;
public AuthDialogListener(Activity context,String content,String file,float lat,float lon){
this.context= context;
this.content=content;
this.file=file;
this.lat=lat;
this.lon=lon;
}
@Override
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
String oauth_verifier = values.getString("oauth_verifier");
AccessToken accessToken = new AccessToken(token, Constants.CONSUMER_SECRET);
accessToken.setExpiresIn(expires_in);
accessToken.setVerifier(oauth_verifier);
Weibo.getInstance().setAccessToken(accessToken);
try {
if (isOver) {
isOver=false;
share2weibo(this.content,null,listener,lat,lon);
}

} catch (WeiboException e) {
e.printStackTrace();
}
}

@Override
public void onError(DialogError e) {
Toast.makeText(context.getApplicationContext(),
"Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onCancel() {
Toast.makeText(context.getApplicationContext(), "Auth cancel",
Toast.LENGTH_LONG).show();
}

@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(context.getApplicationContext(),
"Auth exception : " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}

private void share2weibo(String content,String file,RequestListener listener,float lat , float lon) throws WeiboException {
Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
if (file!=null&&!file.equalsIgnoreCase("")) {
params.add("pic", file);
url = Weibo.SERVER + "statuses/upload.json";
}
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context, url, params,Utility.HTTPMETHOD_POST,listener);

}
RequestListener listener= new RequestListener() {

@Override
public void onIOException(IOException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onError(WeiboException e) {
isOver=true;
Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show();
}

@Override
public void onComplete(String response) {
isOver=true;
Toast.makeText(context, "Success!", Toast.LENGTH_LONG).show();
}
};
}

需要完成WeiboDialogListener接口中的方法,分别是onComplete,OnError,
OnCancel,OnWeiboException。其中Oncomplete是在微博登陆授权成功后会执行的方法,在这个方法中,你可以调用你想要的功能如发表微博,转发,评论等。使用的代码可参看以下代码:

Weibo weibo = Weibo.getInstance();
WeiboParameters params= new WeiboParameters();
params.add("access_token", weibo.getAccessToken().getToken());
params.add("status", content);
params.add("lat", String.valueOf(lat));
params.add("long", String.valueOf(lon));
String url = Weibo.SERVER + "statuses/update.json";
AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo);
runner.request(this.context,url,params,Utility.HTTPMETHOD_POST,listener);

其中params是调用weibo api中需要的具体参数,可根据需要进行添加
AsyncWeiboRunner 是用来执行具体请求的类,根据你设定的参数发起请求。注意这里又有一个listerner,而这个listener是对发起请求后的结果进行处理的回调类,
RequestListener listener= new RequestListener()
需要复写的方法有OnIOException,onError,onComplete,这样可以清楚地对各种情况进行处理。
这样在程序中就可以使用新浪微博 android sdk了。

‘玖’ android 新浪微博手机客户端 不能登录服务器

等待维修吧
新浪微博Android客户端SSO授权认证缺陷

从最近几年开始,做平台的公司都流行起Open API。这是一个非常好的理念,也受到广大开发者的欢迎。如今,开发一款软件,你可以很容易地集成微博、微信、人人网等流行社交媒介的分享功能,做一个社交应用变得越来越简单。

主流社交媒介要集成到第三方应用中,最重要的入口就是安全便捷的授权认证系统。让用户在享受一键分享和各种社交乐趣的同时,又不用担心帐号安全和隐私泄露等问题。而对于一些有特殊目的的组织或个人来说,攻占这个授权认证系统意味着自己获取了信息传播的入口和渠道,数量庞大地社交入口往往能带来巨大的社会效应。所以,这个入口就成了软件安全攻防双方的必争之地。

而本文所要讲的就是当前最为流行的新浪微博Android客户端SSO授权认证入口的一个安全缺陷。此缺陷使得第三方APK在一定条件下可以不通过授权,在不需要人为操作的情况下就可以操作Android手机用户的微博。包括关注、评论、发微博等OpenAPI中提供的功能。

‘拾’ android开发新浪微博客户端,怎么实现OAuth协议认证。什么方法只要能实现就行..求高手,求详解。。。

个人用户申请认证基本条件:头像:需有清晰头像发言:不少于5条简介:绑定手机、听众数50、收听数100非个人用户申请认证基本条件:头像:和账号身份相符的清晰头像发言:最近一周至少有3条原创广播简介:不超过100字的真实身份简介

热点内容
新名图配置怎么样 发布:2024-05-19 09:31:30 浏览:94
php获取子节点 发布:2024-05-19 09:21:18 浏览:160
php生成html 发布:2024-05-19 09:20:24 浏览:795
keil编译步骤 发布:2024-05-19 08:58:12 浏览:702
ipad有哪些好用的c语言编译器 发布:2024-05-19 08:41:56 浏览:767
征途手游版脚本 发布:2024-05-19 08:38:11 浏览:165
安卓咪咕音乐怎么录制视频 发布:2024-05-19 07:56:06 浏览:838
如何搞出超大声的听声辨位安卓版 发布:2024-05-19 07:46:21 浏览:927
linux安全模式 发布:2024-05-19 07:27:25 浏览:176
为什么安卓手机安装不了cpk 发布:2024-05-19 07:22:21 浏览:313