OpenSocial RESTful Library使用心得

什么是OpenSocial?看这里google opensocial 中文版
什么是restful?看这里restful 英文版
总体上说一下所谓的Opensocial,不过是弄了一套API,这套API是符合REST规范的。REST规范是什么?和上面的restful差不多。有兴趣可以去google搜索“Fielding博士的论文中文版”,里面有详细的介绍,说实话没看懂,不过不妨碍我写东西,比如用RESTful library写应用。
要了解更多OpenSocial内容,请参见Google Opensocial 中文讨论组

下面就记述一下我写第一个RESTful应用是的经历。很简单,属于傻瓜级的:)

第一步:

    先去下载一个google opensocial restful library
    下载链接:
    PHP: http://code.google.com/p/opensocial-php-client/
    Java: http://code.google.com/p/opensocial-java-client/
    Ruby: http://code.google.com/p/opensocial-ruby-client/
    Python: http://code.google.com/p/opensocial-python-client/
    我是用php的,所以下载了一个php版本

第二步:

    看一下library里面的结构,发现内容很少,窃喜!
    目录结构

    library/Oauth/Oauth.php

    library/OpenSocial/OpenSocial.php
    library/OpenSocial/OpenSocialAppData.php
    library/OpenSocial/OpenSocialCollection.php

    library/OpenSocial/OpenSocialHttpLib.php

    library/OpenSocial/OpenSocialHttpRequest.php

    library/OpenSocial/OpenSocialHttpResponse.php

    library/OpenSocial/OpenSocialRerson.php

    library/OpenSocial/OpenSocialRequest.php

    library/Zend/ 这是标准的Zend没什么好说的
    这些脚本中,其实我们不用都一一看过,知道怎么用就行了,但是由于整个library还不是非常成熟,有些瑕疵,比如直接用token验证的时候。于是我们还是需要看两个脚本,第一个是 libray/OpenSocial/OpenSocial.php,这个脚本定义了我们如何去取得数据。
用法很简单,如同例子中给定的:
<?php
$config = array(
  "oauth_consumer_key" => "orkut.com:623061448914",      //这个信息是平台给我们的
  "oauth_consumer_secret" => "uynAeXiWTisflWX99KU1D2q5", //这个信息是平台给我们的
  "server_rest_base" => http://sandbox.orkut.com/social/rest/ 
 //这个是rest的基本地址,平台的

);
$opensocial = new OpenSocial($config);
$result = $opensocial->fetchFriends('03067092798963641994');
?>
这样的请求时基于平台给我们提供了secre_key这样的请求方式。就是说平台实现了Oauth的一些内容,但是遗憾的是国内的平台还没有实现,及时myspace.cn实现的也和这个library有差距,所以还是寄希望于那些用shindig来实现opensocial的平台xiaonei,51,tianya,yiqi这几个网站了。幸运的是,tianya.cn已经实现了restful,并且是用shindig实现的。

天涯实现RESTful是用token的直接验证方式,一次我们需要扩展一下RESTful library,具体就是扩展OpenSocial/OpenSocial.php脚本中的OpenSocial类,
看这个脚本的时候,发现

protected function sendRestRequest($request) {
    // If you want to sign a request using a security token, you can use
    // $http_request->signWithToken("<token>"); although this is not part
    // of the spec.
    $http_request = $request->getRestRequest($this->server_rest_base);
    $http_request->sign($this->oauth_consumer, $this->signature_method);
    $http_result = $this->httplib->sendRequest($http_request);

    .....(这里省略去以下内容)
}

发现是在这里用secret_key,并且是用http_request类中的这个方法来验证的。
去看OpenSocial/OpenSocialHttpRequest.php这个脚本,发现里面有
function sign($key, $secret) 函数,同时还有
function signWithToken($st)  函数。测试后发现,
只要将原来OpenSocial/OpenSocial.php脚本中的
$http_request->sign($this->oauth_consumer, $this->signature_method);
修改为:
$http_request->signWithToken($st);
就可以用token直接验证了(这里的$st是你在应用程序中从平台获得的)。
扩展出一个类来继承OpenSocial类,就可以无忧无虑的用token直接验证了。

第三步:

    在tianya.cn上写一个测试程序
    下载opensocialapp,这里面有一个扩展好的脚本叫做OpenSocialApp.php
    然后写一段脚本来测试
<?php
$options = array(
  "server_rest_base" => "
http://app.tianya.cn/social/rest/"
);

$params = array(
  'o' => $_REQUEST['o'],
  'v' => $_REQUEST['v'],
  'count' => 1000,
  'fields' => 'id,name,gender,thumbnailUrl,nickname',
);
$opensocialapp = new OpenSocialApp($options);
$person = $opensocialapp->fetchPersonChange($_REQUEST['o'], $params);
$friends = $opensocialapp->fetchFriendsChange($_REQUEST['o'], $params);
print_r($person);
print_r($friends);
?>

这样就简单的取得了天涯上面个人信息和好友信息了。

这里有一个用RESTful library写的实际应用爱恨知多少

应用源代码下载位置为easy-opensocial-apps

那我们就开始用opensocial restful library开发应用的轻松旅程吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值