Twitter,oauth和coldfusion

And*_*ett 6 twitter coldfusion oauth

我想发布到Twitter.我已经对应用程序进行了身份验证,现在想要发布更新.

这是我的http帖子:

<cfhttp url="http://api.twitter.com/1/statuses/update.json" method="post">
 <cfhttpparam type="header" name="status" value="#urlEncodedFormat('my test post')#" />
 <cfhttpparam type="header" name="oauth_consumer_key" value="xxx" />
 <cfhttpparam type="header" name="oauth_nonce" value="xxx" />
 <cfhttpparam type="header" name="oauth_signature_method" value="#urlEncodedFormat('HMAC-SHA1')#" />
 <cfhttpparam type="header" name="oauth_token" value="xxx" />
 <cfhttpparam type="header" name="oauth_timestamp" value="#GetTickCount()#" />
 <cfhttpparam type="header" name="oauth_version" value="1.0" />
</cfhttp>
Run Code Online (Sandbox Code Playgroud)

有没有人这样做过?我走的是正确的路线吗?

Hen*_*nry 4

你读过这个吗?

\n\n

http://dev.twitter.com/pages/auth#auth-request

\n\n

您需要构建“签名基本字符串”并作为正文发布(警告:未经测试的代码,适用于 CF8+)

\n\n
<cffunction name="makeSignatureBaseString" returntype="string" output="false">\n  <cfargument name="httpMethod" type="string" required="true">\n  <cfargument name="baseUri" type="string" required="true">\n  <cfargument name="values" type="struct" required="true">\n\n  <cfset var signatureBaseString = "#httpMethod#&#URLEncodedFormat(baseUri)#&">\n  <cfset var keys = StructKeyArray(values)>\n  <cfset var key = "">\n\n  <cfset ArraySort(keys, "textNoCase")>\n  <cfloop array="#keys#" index="key">\n    <cfset signatureBaseString &= URLEncodedFormat("&#key#=#values[key]#")>\n  </cfloop>\n\n  <cfreturn signatureBaseString>\n</cffunction>\n
Run Code Online (Sandbox Code Playgroud)\n\n

-

\n\n
<!--- using values from http://dev.twitter.com/pages/auth#auth-request --->\n<cfset params = {\n  oauth_consumer_key = "GDdmIQH6jhtmLUypg82g\xe3\x82\x8b",\n  oauth_nonce = "oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",\n  oauth_signature_method = "HMAC-SHA1",\n  oauth_token = "819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",\n  oauth_timestamp = "1272325550",\n  oauth_version = "1.0"\n}>\n\n<cfhttp url="http://api.twitter.com/1/statuses/update.json" method="POST">\n <cfloop collection="#params#" item="key">\n   <cfheader type="header" name="#key#" value="#params[key]#">\n </cfloop>\n\n <!--- add status to the params for makeSignatureBaseString() --->\n <cfset params.status = "setting up my twitter \xe7\xa7\x81\xe3\x81\xae\xe3\x81\x95\xe3\x81\x88\xe3\x81\x9a\xe3\x82\x8a\xe3\x82\x92\xe8\xa8\xad\xe5\xae\x9a\xe3\x81\x99\xe3\x82\x8b">\n\n <cfhttpparam type="body"\n   value="#makeSignatureBaseString(\'POST\', \'http://api.twitter.com/1/statuses/update.json\', params)#">\n</cfhttp>\n
Run Code Online (Sandbox Code Playgroud)\n