perl调用NET::OAuth发送新浪微博
时间:2011-06-29
来源:互联网
最近做了一个新浪微博的应用开发,主要是使用NET::OAuth来实现新浪微博的发布
新浪的SDK版本不少,好像缺少perl的,把个人的一点经验分享下
1、需要去获取requset token:
my $request = Net::OAuth->request("request token")->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
request_url => request_url,#请求request token的地址 http://api.t.sina.com.cn/oauth/request_token
request_method => 'POST',#方法
signature_method => 'HMAC-SHA1',#签名方法
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
callback => callback_url,#callback_url 在用户授权后跳转到应用的地址
);
$request->sign;#签名
获取到requset_token后,将requset_token和requset_secret保存,供下一步置换access_token
2、获取获取access_token
my $request = Net::OAuth->request("access token")->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
request_url => request_url,#请求Access token的地址 http://api.t.sina.com.cn/oauth/access_token
request_method => 'POST',#方法
signature_method => 'HMAC-SHA1',#签名方法
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
callback => callback_url,#callback_url 在用户授权后跳转到应用的地址
verifier => verifier,#这个参数会在用户授权后,callback地址里带着,需要接收保存
token =>request_token,#获取的request_token
token_secret=>request_secret,#获取的request_secret
version => 1.0
);
$request->sign;
将获取的access_token access_secret保存,供后续发微博等使用
3、发微博
发送微博时,陷入一个误区,以为按照新浪api里提供的格式就是正确的,结果一直是提示签名无效。
后来一朋友将新浪发微博所提供的内容参数status,放到扩展参数中后,才通过,这个地方折腾了一天多。
my $request =Net::OAuth->request('protected resource')->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
token =>request_token,#获取的request_token
token_secret=>request_secret,#获取的request_secret
request_url => request_url,#请求发送微博的地址:http://api.t.sina.com.cn/statuses/update.json 我这使用的是json格式
request_method => 'POST',
signature_method => 'HMAC-SHA1',
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
version => "1.0",
extra_params => {status => "test weibo"}#扩展参数,需进行uri_escape("test weibo")
);
$request->sign;
之前API中参数太多,看的脑袋大,后发现还是挺有意思的
看有时间能不能封装成一个包,做个perl版的SDK
希望大家批评指正。谢谢
新浪的SDK版本不少,好像缺少perl的,把个人的一点经验分享下
1、需要去获取requset token:
my $request = Net::OAuth->request("request token")->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
request_url => request_url,#请求request token的地址 http://api.t.sina.com.cn/oauth/request_token
request_method => 'POST',#方法
signature_method => 'HMAC-SHA1',#签名方法
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
callback => callback_url,#callback_url 在用户授权后跳转到应用的地址
);
$request->sign;#签名
获取到requset_token后,将requset_token和requset_secret保存,供下一步置换access_token
2、获取获取access_token
my $request = Net::OAuth->request("access token")->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
request_url => request_url,#请求Access token的地址 http://api.t.sina.com.cn/oauth/access_token
request_method => 'POST',#方法
signature_method => 'HMAC-SHA1',#签名方法
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
callback => callback_url,#callback_url 在用户授权后跳转到应用的地址
verifier => verifier,#这个参数会在用户授权后,callback地址里带着,需要接收保存
token =>request_token,#获取的request_token
token_secret=>request_secret,#获取的request_secret
version => 1.0
);
$request->sign;
将获取的access_token access_secret保存,供后续发微博等使用
3、发微博
发送微博时,陷入一个误区,以为按照新浪api里提供的格式就是正确的,结果一直是提示签名无效。
后来一朋友将新浪发微博所提供的内容参数status,放到扩展参数中后,才通过,这个地方折腾了一天多。
my $request =Net::OAuth->request('protected resource')->new(
consumer_key =>appkey, #申请应用新浪给的App Key
consumer_secret => appsecret, #申请应用新浪给的App Secret
token =>request_token,#获取的request_token
token_secret=>request_secret,#获取的request_secret
request_url => request_url,#请求发送微博的地址:http://api.t.sina.com.cn/statuses/update.json 我这使用的是json格式
request_method => 'POST',
signature_method => 'HMAC-SHA1',
timestamp => timestamp,#时间戳,我用的time()
nonce => nonce,#生成一个随机的字符串
version => "1.0",
extra_params => {status => "test weibo"}#扩展参数,需进行uri_escape("test weibo")
);
$request->sign;
之前API中参数太多,看的脑袋大,后发现还是挺有意思的
看有时间能不能封装成一个包,做个perl版的SDK
希望大家批评指正。谢谢
作者: yangzh1985 发布时间: 2011-06-29
这样啊
作者: lbk90032190 发布时间: 2011-06-29
不错 可以参考 可以封装做个SDK包
作者: tyuthht 发布时间: 2011-06-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28