`
rensanning
  • 浏览: 3538445 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37958
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:606451
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:681075
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:88691
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401225
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69548
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91410
社区版块
存档分类
最新评论

使用Titanium Mobile开发iPhone/Android应用(04)- Twitter客户端之使用OAuth调用API

阅读更多
这回我们将说明使用OAuth调用API。Twitter API基本上都使用的是OAuth作为认证,所以要做Twitter客户端,OAuth是不可缺少的一个技术点。

制作发消息页面

在实际开始使用OAuth认证之前我们想做一个发消息的页面。在第一回页面的基础上,我们在页面右上角位置做成一个能够发消息的按钮,当按下该按钮后,表示出来发消息页面。

var win1 = Ti.UI.currentWindow;
var messageButton = Ti.UI.createButton(
    {
            systemButton: Titanium.UI.iPhone.SystemButton.ADD
    }
);
messageButton.addEventListener(
    'click',
    function () {
        var messageWindow = Ti.UI.createWindow(
            {
                url: 'message_window.js',
                title: 'message',
                backgroundColor: '#fff'
            }
        );
        messageWindow.open();
    }
);
win1.rightNavButton = messageButton;

在前回做好的table_view.js的最开始插入以下代码,需要注意的一点是,使用做成按钮的createButton方法,在页面左上也就是导航栏右侧放置的代码是win1.rightNavButton。这段代码使用了iPhone预先做好的系统按钮,只是做了iPhone的NavigationBar功能,当然在Android下是不能运行的,需要注意一下。

对于按钮,我们需要把重点放在,使用addEventlistener对click事件设置回调函数上。使用这个addEventlistener方法,在Titanium的开发中会频繁的使用它为应用的按钮等UI追加事件。相比HTML的WEBy应用,很相似的是,Javascript的一些方法。上边例子通过click事件,打开我们将要书写Tweeter的页面。 新打开的窗口我们将在message_window.js中编写代码。

message_window.js
var win = Ti.UI.currentWindow;
var textArea = Ti.UI.createTextArea(
    {
        height:150,
        width:300,
        top:10,
        font:{fontSize:20},
        borderWidth:2,
        borderColor:'#bbb',
        borderRadius:5
    }
);

win.add(textArea);
var postButton = Ti.UI.createButton(
    {
        top: 170,
        right: 10,
        width: 100,
        height: 44,
        title: 'POST'
    }
);
win.add(postButton);

这个就是message_window.js了。

首先只是对齐了一下布局,表示了输入框和发信按钮,但是都还没有什么动作。布局大概是以下这个样子的。



OAuth认证的准备

我们已经准备好了页面,下一步就是编写发信announced点击后往Twitter中发送Tweeter的代码了。如前边所说,这样的API需要OAuth认证,所以我们需要提前准备一下。

首先,对已Twitter,想使用API的开发者必须申请。登录网站后,访问http://twitter.com/apps/new,填写一些必要信息后进行申请。

申请成功后,就可以获得OAuth所需要的Consumer Key和Cosumer Secret,把这两个值记载下来以后会用到。

使用OAuth Adapter

作为从Titanium进行Twitter的OAuth的认证方法,需要使用OAuth Adapter库。使用这个库后,一些很麻烦的OAuth认证代码部分,这个库能提大家做了。还有一些相关联的库,所以需要下载以下文件后凡知道Project的Resorces/lib文件夹下。

oauth-adapter
oauth.js
sha1.js

放好文件后,在message_window.js中,按照如下修改代码,当按下发信时的处理中,使用oauth_adapter往Twitter中发信。

在代码开始的地方需要把'consumer_key' 和 'consumer_secret'替换成自己的值。

Ti.include('lib/oauth_adapter.js');
var oAuthAdapter = new OAuthAdapter(
    'consumer_secret',
    'consumer_key',
    'HMAC-SHA1'
);
oAuthAdapter.loadAccessToken('twitter');

function tweet(message) {
    oAuthAdapter.send(
        'https://api.twitter.com/1/statuses/update.json',
        [['status', message]],
        'Twitter', //警告标题
        'Published.', //成功后的消息
        'Not published.' //失败后的消息
    );

    if (oAuthAdapter.isAuthorized() == false) {
        var receivePin = function() {
            oAuthAdapter.getAccessToken(
                'https://api.twitter.com/oauth/access_token'
            );
            oAuthAdapter.saveAccessToken('twitter');
        };
        oAuthAdapter.showAuthorizeUI(
            'https://api.twitter.com/oauth/authorize?' +
                oAuthAdapter.getRequestToken(
                    'https://api.twitter.com/oauth/request_token'
                ),
            receivePin
        );
    }
}

postButton.addEventListener(
    'click',
    function () {
        if ( textArea.value ) {
            tweet( textArea.value );
        }
    }
);

win.add(postButton);


这样修改之后,把Tweeter写到TextArea中厚,点击发信按钮就能够看到一下页面。



根据这个页面的提示,使用这个Twitter客户端应用的用户就能往Twitter上发信了。在以后的发信处理中,就不在需要用户填写用户信息登录了。

这样原封不动的代码中,不能从发信后的页面返回。所以需要再一次启动应用,使用Web浏览器,用认证的Twitter账户登录后,查看发信是否成功。

在上边的代码中,很重要的一点是,利用Ti.include方法调用库。这个include方法,就相当于在该方法调用的地方书写指定那个文件内容一样的效果。

还有一点,函数tweet中,调用方法oAuthAdapter.send的地方,稍微有些难懂, 把数组[['status', message]]作为第2个参数就是往Twitter发信的Tweeter。


函数tweet中,以外的处理是,OAuth认证的开始,需要获得应用使用者的许可,上边页面那样表示出来的窗口中进行设定。这里需要理解OAuth的处理过程,大家可以参看其他关于OAuth的介绍。

总结

我们说了一下使用oauth_adapter库往Twitter发信的方法。从发信页面还不能返回,所以不能看到发送的Tweeter内容,是这个Twitter应用不足的地方以后的章节中将会进一步进行改善。
  • 大小: 87.8 KB
  • 大小: 66 KB
  • 大小: 80.7 KB
0
0
分享到:
评论

相关推荐

    Titanium Mobile API

    Titanium Mobile API 是一款由 Appcelerator 公司提供的用于跨平台移动应用开发的强大工具包。该工具允许开发者使用 JavaScript 编写应用程序,并通过一套统一的 API 接口访问原生移动设备功能,如 GPS 定位、摄像头...

    Titanium中Httpclient访问REST 服务

    Titanium是一款JavaScript开发的开源移动应用框架,它允许开发者使用JavaScript编写原生iOS和Android应用。在Titanium中,我们可以通过HTTPClient模块来发送HTTP请求,与RESTful Web服务进行通信。REST...

    byu-user-info-oauth:预习

    byu-browser-oauth-implicit 用于byu-browser-oauth的OAuth隐式授予提供程序 用法 < head > < script type =" module " src =" ...

    TITANIUM智能手机应用开发教程

    ### TITANIUM智能手机应用开发教程知识点概览 #### 一、TITANIUM系统简介与特点 **TITANIUM系统**是一种基于云的移动应用程序开发平台,它支持跨平台开发,允许开发者使用JavaScript来编写原生移动应用程序。...

    sublimetext-tita, Tita Titanium Mobile/Alloy sublime text 2插件.zip

    sublimetext-tita, Tita Titanium Mobile/Alloy sublime text 2插件 这个插件不再主动地维护 ***因为我不再使用 st2/st3 。 有人对 fork 感兴趣并维护它?替代插件:...

    Android-titanium_mobile.zip

    Android-titanium_mobile.zip,带有javascript的本地ios、android和windows应用程序,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Titanium Mobile API的chm文件制作思路

    Titanium Mobile API是用于开发跨平台移动应用的框架,它基于JavaScript,允许开发者用一种语言创建iOS和Android应用。这个框架提供了丰富的API,使得开发者能够访问设备的各种功能,如GPS、摄像头、网络通信等。本...

    TitaniumMobile开发跨平台iOS和Android应用

    Titanium Mobile为开发者提供了一种高效的跨平台移动应用开发方式。通过使用JavaScript,开发者能够快速构建功能丰富的应用程序,并且能够在iOS和Android两个主要平台上运行。虽然存在一些局限性,但总体而言,...

    钛备份 Titanium Backup v3.8.6 捐赠版 for android -- 安卓 天涯浪子

    钛备份 Titanium Backup,备份你的程序及程序数据,并支持定时备份等功能。 功能很强大,有此软件,不管你的格机还是重刷ROM,在重装软件时都是无痛的,非实适用经常捣鼓手机有机友! 免费版功能: * 无时间限制 *...

    Titanium使用JavaScript来开发原生iOSAndroid和Windows应用

    Titanium是一个开源的移动开发框架,它允许开发者使用JavaScript语言来构建原生的iOS、Android以及Windows应用程序。这个框架的核心理念是提供一个跨平台的解决方案,让开发者可以用一种语言编写代码,然后在多个...

    Titanium开发者平台介绍

    - **无需Java或Objective-C**:传统的移动应用开发通常需要使用Java(针对Android)或Objective-C/Swift(针对iOS)。而Titanium打破了这一限制,开发者可以用自己熟悉的语言进行开发,同时保持接近原生性能的表现。...

    前端开源库-node-titanium-sdk

    总之,`node-titanium-sdk`是前端开发者进入跨平台移动应用开发领域的强大工具,结合Node.js的生态系统,它提供了一条高效的开发路径,让开发者可以用熟悉的JavaScript技术创建高性能、多平台的应用。

    Titanium plugin开发初探

    在移动应用开发领域,Titanium 是一个流行的选择,它允许开发者使用 JavaScript 来构建原生的 iOS 和 Android 应用。Titanium 的核心理念是通过跨平台的 JavaScript API 提供与原生功能的无缝对接,而插件开发则是这...

    Titanium Mobile SDK 3.1.0 Apidoc 离线版

    Titanium Mobile SDK 3.1.0 是一个用于构建原生移动应用的开发工具,尤其针对iOS和Android平台。这个版本的Apidoc是开发者的重要参考资料,它包含了完整的API文档,帮助开发者理解并使用Titanium框架的各种功能。...

    Titanium Mobile API 1.8.2.chm

    Titanium Mobile API 1.8.2.chm 内容很好但是英文版的,E不好的童鞋慎下

    vamaraju-reflex:CMPUT 301作业1回购,作者Raghav Vamaraju

    瓦马拉茹反射CMPUT 301作业1回购... -使用处理程序创建较短的Toast -BaseActivity的想法: ://www.mysamplecode.com/2013/04/android-common-menu-options.html -返回主屏幕的菜单项: ://stackoverflow.com/questions

Global site tag (gtag.js) - Google Analytics