2010-07-14 56 views
3

嘿家伙们,我试图找出使用ColdFusion的oAuth过程,并且似乎没有很多关于论坛的信息。Coldfusion Vimeo oAuth

我总是收到“401未经授权 - 无效签名 - 传递的oauth_signature无效”但我传递了正确的一条。

这是我的过程。::

我使用OAuth的代码库从http://oauth.googlecode.com/svn/code/coldfusion/oauth

使用有例子为Twitter和Google我已经修改了它象下面这样工作。

<cfset sConsumerKey = "XXX"> 
<cfset sConsumerSecret = "YYY"> 
<cfset sTokenEndpoint = "http://vimeo.com/oauth/request_token"> 

<cfset oReqSigMethodSHA = CreateObject("component", "oauth.oauthsignaturemethod_hmac_sha1")> 
<cfset oToken = CreateObject("component", "oauth.oauthtoken").createEmptyToken()> 
<cfset oConsumer = CreateObject("component", "oauth.oauthconsumer").init(sKey = sConsumerKey, sSecret = sConsumerSecret)> 

<cfset myParams = structNew() /> 
<cfset myParams.oauth_callback = "http://XXX.XXX/web/oAuth/examples_external/vimeo2.cfm" /> 

<cfset oReq = CreateObject("component", "oauth.oauthrequest").fromConsumerAndToken(
oConsumer = oConsumer, 
oToken = oToken, 
sHttpMethod = "GET", 
sHttpURL = sTokenEndpoint, 
stParameters = myParams)> 

<cfset oReq.signRequest(
oSignatureMethod = oReqSigMethodSHA, 
oConsumer = oConsumer, 
oToken = oToken)> 

<cfhttp url="#oREQ.getString()#" method="get" result="tokenResponse"/> 

然后返回oauth_token & oauth_verifier。

<cfset sConsumerKey = "XXX"> 
<cfset sConsumerSecret = "YYY"> 
<cfset sAuthorizationEndpoint = "http://vimeo.com/oauth/access_token"> <!--- Authorize URL ---> 

<cfset oReqSigMethodSHA = CreateObject("component", "oauth.oauthsignaturemethod_hmac_sha1")> 
<cfset oToken = CreateObject("component", "oauth.oauthtoken").createEmptyToken()> 
<cfset oConsumer = CreateObject("component", "oauth.oauthconsumer").init(sKey = sConsumerKey, sSecret = sConsumerSecret)> 

<cfset myParams = structNew() /> 
<cfset myParams.oauth_token = URL.oauth_token /> 
<cfset myParams.oauth_verifier = URL.oauth_verifier /> 
<cfset myParams.oauth_callback = "oob" /> 

<cfset oReq = CreateObject("component", "oauth.oauthrequest").fromConsumerAndToken(
oConsumer = oConsumer, 
oToken = oToken, 
sHttpMethod = "GET", 
sHttpURL = sAuthorizationEndpoint , 
stParameters = myParams)> 

<cfset oReq.signRequest(
oSignatureMethod = oReqSigMethodSHA, 
oConsumer = oConsumer, 
oToken = oToken)> 

<cfhttp url="#oREQ.getString()#" method="get" result="tokenResponse"/> 
<cfdump var="#tokenResponse#" /> 

而且从CFHTTP的结果是401错误

+0

他们的回答应该更加详细,比如'401未经授权 - 无效的API密钥 - 传递的API密钥无效。你能看到扩展部分来自通用代码之后吗? – Sergii 2010-07-14 06:58:15

+0

是啊有没有“401未经授权 - 无效的签名 - 通过oauth_signature无效” 但我使用的oauth类,所以它应该是正确的.... – ozatomic 2010-07-15 00:24:44

+0

有没有人有任何更多的反馈,可能是什么问题? – ozatomic 2010-07-18 22:56:05

回答

0

在不知道Vimeo的API什么,我想是需要POST时,通过GET发送数据时,有超过OAuth的同样的问题。

+0

从那里的文档@ http://vimeo.com/api/docs/oauth他们有的所有例子都使用GET – ozatomic 2010-07-14 04:21:33