まず、私のプロジェクトでは独自のモジュールを作成する必要があるため、そこにあるさまざまなパッケージや製品を使用できません。そうは言っても、正しいトークン、consumer_key、consumer_secret、および token_secret 変数を使用して、正しい基本署名文字列を作成し、その文字列から OAuth 署名を作成すると、ColdFusion モジュールを介して Twitter データを取得するのに何の問題もありませんでした。どちらかがオフになっていると、Twitter のデータを取得することさえできません。
変数が正しいことを知っていても、ColdFusion を介して自分の Twitter アカウントに簡単なステータス ツイートを投稿することはまだできません。試行するたびに、「コード:32、メッセージ:'認証できませんでした'」という同じエラーが表示されます。変数ではないことはわかっているので、ColdFusion 経由で POST を送信する方法に違いはありませんが、何が間違っているのかわかりません。以下は、POST を送信するために使用するコードです。
<cfhttp url="https://api.twitter.com/1.1/statuses/update.json" method="POST" throwonerror="yes" >
<cfhttpparam type="header" name="Authorization" value='OAuth oauth_consumer_key="#oauthStruct.oauth_consumer_key#", oauth_nonce="#oauthStruct.oauth_nonce#", oauth_signature="#oauthStruct.oauth_signature#", oauth_signature_method="#oauthStruct.oauth_signature_method#", oauth_timestamp="#oauthStruct.oauth_timestamp#", oauth_token="#oauthStruct.oauth_token#", oauth_version="#oauthStruct.oauth_version#"'>
<cfhttpparam type="header" name="Content-Type" value="application/x-www-form-urlencoded">
<cfhttpparam type="formfield" name="status" value="#oauthStruct.status#">
</cfhttp>
誰かが上記のコードを調べて、何かが足りないか、この呼び出しを間違って送信しているかどうかを理解するのを手伝ってもらえますか?
更新: 上記のコードを次のように変更しました。
<cfhttp url="https://api.twitter.com/1.1/statuses/update.json" method="POST" throwonerror="yes" >
<cfhttpparam type="header" name="Authorization" value='OAuth oauth_consumer_key="#oauthStruct.oauth_consumer_key#", oauth_nonce="#oauthStruct.oauth_nonce#", oauth_signature="#oauthStruct.oauth_signature#", oauth_signature_method="#oauthStruct.oauth_signature_method#", oauth_timestamp="#oauthStruct.oauth_timestamp#", oauth_token="#oauthStruct.oauth_token#", oauth_version="#oauthStruct.oauth_version#"'>
<cfhttpparam type="header" name="Content-Type" value="application/x-www-form-urlencoded">
<cfhttpparam type="header" name="oauth_consumer_key" value="#oauthStruct.oauth_consumer_key#">
<cfhttpparam type="header" name="oauth_nonce" value="#oauthStruct.oauth_nonce#">
<cfhttpparam type="header" name="oauth_signature" value="#oauthStruct.oauth_signature#">
<cfhttpparam type="header" name="oauth_signature_method" value="#oauthStruct.oauth_signature_method#">
<cfhttpparam type="header" name="oauth_timestamp" value="#oauthStruct.oauth_timestamp#">
<cfhttpparam type="header" name="oauth_token" value="#oauthStruct.oauth_token#">
<cfhttpparam type="header" name="oauth_version" value="#oauthStruct.oauth_version#">
<cfhttpparam type="body" value="#signature_string#">
</cfhttp>
それでも機能しません。同じ認証エラーです。他のアイデアはありますか?