这一篇中我们要实现的就是简单实现微博的发布功能,在旧版本的微博官方 API 中,微博分开了各个接口,
写入接口
statuses/repost 转发一条微博信息
statuses/destroy 删除微博信息
statuses/update 发布一条微博信息
statuses/upload 上传图片并发布一条微博
statuses/upload_url_text 发布一条微博同时指定上传的图片或图片 url
而新版API只留了一个写入接口给我们
请求方式 POST
,请求参数 token 和 Statues , token 就不说了,关键是这里的 Statues 要求,
|
|
这时候首先我们要去完善这个安全域名的信息。通过它上边的提示,我们可以找到这个编辑安全域名的地方,但是我们并不能只填写安全域名,微博还要求我们把其他几项信息补全,否则我们不能保存该项信息
这里需要下载微博的签名工具,包名信息我们可以在
AndroidManifest
文件中的第一项manifest
标签中找到,然后将这个包名复制到手机上下载好的签名工具上,生成签名。Android 下载地址:随便填写一个应用商店的地址即可,这里我填的是百度应用商店的地址。应用下载地址亦同。
应用介绍、简介也都需要填,可以随便写写。 选好标签。
接下来就是安全域名,这里我填写了依旧是百度的首页。安全域名填三级域名即可。
这里发布微博界面我们以 Activity 为基础写,是因为我想的有点多 23333 ,微博发布界面那个 Fragment 会有好几个选项,点击了相应的会跳转到不同的 Activity ,所以我们这里采用了 Activity 。废话不多说,来看。
首先我们分析,我们需要一个 EditText 输入文本和记录表情码,表情软键盘,一个 Button ,然后就是简单的处理发送了。
这里表情软键盘我使用了第三方库,这是比较过以后最好用的一个第三方库,首先我们还是要添加依赖
|
|
库主的专栏 ,
然后让你的 Activity 实现( Fragment 中 set 接口) FaceFragment.OnEmojiClickListener 来处理 emoji 的点击事件,用法只需要
|
|
这里的 Container 只是一个显示最后带表情的微博文本结果的 TextView 。
在点击发布时候, onClick 方法:
|
|
嗯,其他什么界面的流程,我做的都很糙,还显示了用户信息那个界面,和之前的操作一样,获取和解析数据,这里每个返回的 json 都会对应一个类,所以都要使用工具生成实体类,我首先做的是微博解析的原因就是因为,微博返回的 json 几乎涵盖了所有的类,更方便以后的数据处理,在这里还需要注意的几个坑就是,有的地方工具会给你生成 int 类型的值,但是int根本不够存放那个值的长度,所以需要你在碰到这类问题时候需要自己手动修改为 long 。
还有一个在设置赞转发评论数的时候遇到的问题,报错显示 Android.content.res.Resources$NotFoundException: String resource ID #0x1 ,
原因:一般发生在参数 int resId 错误,你把 String 赋值给int的 resId ,所以编译器找不到正确的 resource 于是报错。
最简单的例子,检查一下你的 Toast.makeText() 啊 textView.setText 啊之类的函数,这种函数通常有几个重载,如:
textView.setText(CharSequence text);
textView.setText(int resId);
......
如果不小心将一个int值传给了它,那它不会显示该int值,而是跑到工程下去找一个对应的resource的id,当然是找不到的,于是就报错啦。
好了,这篇就是如此短小了,如果对您有用欢迎评论支持,谢谢阅读!