前言
本文旨在向大家介绍什么是OPhone (指基于OPhone平台的手机)Web API,OPhone Web API 向开发者提供什么样的服务,OPhone Web API安全,并通过简单的实例告诉大家如何使用OPhone Web API
什么是OPhone Web API
OPhone Web API 是 OPhone 向开发者开放的编程接口,开发者可以利用OPhone Web API 开发出各种web或桌面应用程序。而这些应用程序将给OPhone用户带来更多实用性,娱乐性的新体验。
如用户可以通过web应用访问到OPhone 用户当前所在位置,用户可以很方便的通过这些应用程序备份自己的phone信息到网络或者PC上,用户可以很方便的通过网络与好友分享OPhone的图片或者当前实况信息(如将生日party的视频实时分享给远方的好友),用户甚至可以在权限许可的范围内通过应用程序搜索好友的联系信息。
OPhone Web API 有哪些
OPhone Web API 目前被分为Auth,Location,Profile,Contact,Search,Messaging,SMS,RSS,Camera,Gallery,Setting 11大类。
Auth:主要提供第三方应用程序做认证的接口
Location:提供给第三方应用获取Ophone location信息的接口
Profile:提供给第三方应用获取Ophone 用户基本信息的接口
Contact:提供给第三方应用获取Ophone用户Contact操作相关的接口。如获取Contact信息,添加Contact信息,删除Contact信息。
Search:提供给第三方应用搜索Ophone 信息的接口,该接口提供对contact,message,call 等信息的搜索。
Messaging:提供给第三方应用向Ophone发送即时信息的接口。该信息有别与Ophone的短消息。
SMS:提供给第三方应用调用Ophone message接口向其它Phone 发送短消息的能力
RSS:提供给第三方应用获取Ophone 共享信息的接口,Ophone 用户可以将手
机的图片,个人基本信息(年龄,学校,工作单位 等),个人当前位置等信息
share 给用户。
Camera:提供给第三方应用调用Ophone camera接口拍照的能力,该接口需要Ophone用户的交互,当Ophone 允许拍照时,照片会实时传回给第三方应用程序。
Gallery:提供给第三方应用访问Ophone 图片的能力。
Setting:提供给第三方应用获取Ophone API权限设置,重置Ophone API的能力
OPhone Web API 安全控制
用户最关心的问题应该是用户信息安全了。为保证OPhone用户的信息安全,OPhone Web API做了严格的权限控制设计,我们对访问者采用了当前广为应用的Oauth认证。同时OPhone Owner可以为每一个API设定访问权限。该权限分为guest,friend,private三种,用户可以自行设定,guest权限的API表示任何用户都可以获取该API提供的信息,friend权限API表示只有获取相应授权的用户才能获取该API提供的信息,private权限的API表示只有OPhone Owner才能获取该API提供的信息。
如何使用 OPhone Web API
首先,开发者必须到OPhone Web API指定的网址注册一个开发账号,并为他的应用程序申请一个API key ,Secret key。因为第三方应用程序能够访问到的OPhone 必须是注册到相应服务器上的OPhone。所以如果OPhone Owner 希望通过第三方应用程序访问到自己的OPhone,就必须将OPhone 注册到该服务器上。
 OPhone Web API 会给第三方开发者提供一个Client SDK,使开发者很方便的可以调用OPhone Web API接口。
下面我将以调用Location接口为例,讲解具体使用Client SDK 调用OPhone API的方法。
1.访问者要访问某个OPhone前必须获得该OPhone的Access token,Secret token。Access token,Secret token是Oauth中提到的一个重要概念,具体可参考资料: http://oauth.net/core/1.0
Access token 方法可调用如下方法获取:
view plaincopy to clipboardprint?
String apiKey = fa48c46b203cdd1101203ce264110006;   
     String secret = 311838e72aa520af53580a5c6d65c56f;   
 
     PhoneapiforWeb web = new PhoneapiforWeb(request,response,apiKey,secret);   
     String callback = "";   
try {               
web.toAuth(" http://apps.facebook.com/omssample/mwsapp.do?method=binding");   
      } catch (IOException e1) {   
//IOException progress
} catch (OAuthException e1) {   
//OauthException progress
 
} catch (URISyntaxException e1) {   
//URISyntaxException progress
 
}        
PhoneapiService service = web.getService();   
String accesstoken = service.accessor.accessToken   
       String tokensecret = service.accessor.tokenSecret;   
       String phoneid = (String)service.accessor.getProperty("user"); 
String apiKey = fa48c46b203cdd1101203ce264110006;         String secret = 311838e72aa520af53580a5c6d65c56f;                         PhoneapiforWeb web = new PhoneapiforWeb(request,response,apiKey,secret);         String callback = "";try {                         web.toAuth(" http://apps.facebook.com/omssample/mwsapp.do?method=binding");          } catch (IOException e1) {          //IOException progress} catch (OAuthException e1) {   //OauthException progress} catch (URISyntaxException e1) {   //URISyntaxException progress}          PhoneapiService service = web.getService();String accesstoken = service.accessor.accessToken       String tokensecret = service.accessor.tokenSecret;       String phoneid = (String)service.accessor.getProperty("user");web.toAuth( String callbackurl)方法会检测当前用户有没有获取accesstoken,如果没有获取accesstoken, 页面会跳转到OPhone Web API得相应页面去登陆,从而产生accesstoken并通过callbackurl 回传给第三方应用程序。
2.应用程序获得accesstoken后便可以调用OPhone Web API 了。其调用过程如下:
view plaincopy to clipboardprint?
PhoneapiService service = new PhoneapiService(apiKey,secret,accesstoken ,tokensecret);   
try {   
            service.getLocation("xml","");   
       } catch (Exception e) {   
//error progress
 
        }   
        LocationResponse location = (LocationResponse)service.getResponsePOJO();