二人のSignatureの違い [OAuth1.0]

はまったところ

RestAPI使うに当たってoauth_tokenを取得しなきゃいけない

んでそれを取得するためにはsignatureが必要

oauth_token を取得するための signatureを生成するにはconsumer_secretとoauth_token_secret がいる

oauth_token_secret はoauth_tokenを取得する際に一緒にもらえる(筈、もしくはその想定で)

oauth_tokenを取得するAPIを叩くにはsignatureが必要…

 

やったこと

・oauth_tokenを取得する為に必要なsignatureを作るのに必要なoauth_token_secretを取得する為に必要なsignature(以下temp_signatureとでもいう)を作った。

・temp_signatureを使ってoauth_tokenを取得するために必要なsignatureを作るのに必要なoauth_token_secretを取得した

・取得したoauth_token_secretとはじめから持っているconsumer_secretを使ってoauth_tokenを取得するのに必要なsignatureを作った

・signatureを使ってoauth_tokenを取得した。

 

つまり僕の環境ではこいつらは二人ずついたって事ですね!!

2つのsignatureの違い

HMAC-SHA1のキーが違う

・temp_signatureは"[consumer_secret]&"

・signatureは"[consumer_secret]&[oauth_token_secret]"

Signatureを生成する際にHMAC-SHA1でハッシュ化するBaseStringが違う(かも)

・このへんは環境によって異なるんですかね。少なくとも僕の触った環境は違いました。

・"[HttpMethod]&[APIのURL]&[oauth_tokenを取得する際のパラメーターをURLEncodeした文字列]"って感じ

 

実際signatureのキーは"[consumer_secret]&[oauth_token_secret]"なんだけど

temp_signatureを生成するタイミングではoauth_token_secretは知らないから入れなくていいってだけ

一番最後のoauth_tokenを取得する為のsignatureを作るタイミングでは知っている筈なので入れる必要がある。

 

 

こんな感じであってると思う

違うと思ったら連絡ください><