其他分享
首页 > 其他分享> > 为Flickr身份验证创建签名(Android SDK)

为Flickr身份验证创建签名(Android SDK)

作者:互联网

我想用我的小Android-App将图片上传到Flickr.因此用户必须登录并接受权限.

我的问题是,我不知道创建签名的参数是什么.
这是在Flickr网站上写的:

The base string is constructed by concatenating the HTTP verb, the request URL, and all request parameters sorted by name, using lexicograhpical byte value ordering, separated by an ‘&’.

什么是“请求参数”?
我用不同的参数尝试了几次,但总是得到错误:“无效的api密钥或签名”.

非常感谢你的帮助!

解决方法:

让我们分解吧.

您需要从HTTP动词开始.让我们说你正在做一个GET请求.签名基本字符串的第1部分是:

得到

然后假设您正在调用URL http://www.example.com/api/?filename=hello.jpg.忽略参数,您有第2部分:

http://www.example.com/api/

然后让我们说你有以下参数,文件名来自上面的URL.服务器允许的请求需要以oauth_为前缀的那些.

> oauth_consumer_key = 9djdj82h48djs9d2,
> oauth_token = kkk9d7dh3k39sjv7,
> oauth_signature_method = HMAC-SHA1
> oauth_timestamp = 137131201
> oauth_nonce = 7d8f3e4a
> filename = hello.jpg

上面的所有参数都需要按字典顺序字节顺序排序(基本上按字母顺序),用’&’分隔.现在你将有第三部分:

文件名= hello.jpg&安培; oauth_consumer_key = 9djdj82h48djs9d2&安培;
oauth_nonce = 7d8f3e4a&安培; oauth_signature_method = HMAC-SHA1&安培; oauth_timestamp =
137131201&安培;组oauth_token = kkk9d7dh3k39sjv7

现在你需要对第2部分和第3部分进行URL编码.然后连接这三部分,结果是:

GET&安培; HTTP://www.example.com/api/\u0026amp;文件名= hello.jpg&oauth_consumer_key = 9djdj82h48djs9d2&
oauth_nonce = 7d8f3e4a&oauth_signature_method = HMAC-SHA1&oauth_timestamp =
137131201&组oauth_token = kkk9d7dh3k39sjv7

这是基本字符串.现在您需要使用HMAC-SHA1算法对其进行签名,生成的签名也必须与请求一起发送.

标签:signature,android,oauth,flickr
来源: https://codeday.me/bug/20190826/1730597.html