Давайте разберемся.
Вы должны начать с глагола HTTP. Допустим, вы делаете запрос GET. Часть 1 базовой строки подписи:
GET
Тогда предположим, что вы звоните по URL http://www.example.com/api/?filename=hello.jpg. Игнорируйте параметр, и вы получите часть 2:
http://www.example.com/api/
Тогда предположим, что у вас есть следующие параметры, filename
из приведенного выше URL. Те, которые начинаются с oauth_
, необходимы для того, чтобы запрос был разрешен сервером.
- oauth_consumer_key = 9djdj82h48djs9d2
- oauth_token = kkk9d7dh3k39sjv7,
- oauth_signature_method = HMAC-SHA1
- oauth_timestamp = 137131201
- oauth_nonce = 7d8f3e4a
- имя_файла = hello.jpg
Все вышеперечисленные параметры должны быть отсортированы в лексикографическом порядке значений байтов (в основном в алфавитном порядке), разделенных символом «&». Теперь у вас будет третья часть:
filename=hello.jpg&oauth_consumer_key=9djdj82h48djs9d2&
oauth_nonce=7d8f3e4a&oauth_signature_method=HMAC-SHA1&oauth_timestamp=
137131201&oauth_token=kkk9d7dh3k39sjv7
Теперь вам нужно кодировать URL часть 2 и часть 3. Затем объединить три части, в результате чего:
GET&http%3A%2F%2Fwww.example.com%2Fapi%2F&filename%3Dhello.jpg%26oauth_consumer_key%3D9djdj82h48djs9d2%26%0Aoauth_nonce%3D7d8f3e4a%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D%0A137131201%26oauth_token%3Dkkk9d7dh3k39sjv7
Это базовая строка. Теперь вам нужно подписать его с помощью алгоритма HMAC-SHA1, итоговая подпись должна быть отправлена вместе с запросом.