2010-07-14 57 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