Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Авторизация через OAUTH Twitter


Автор: albionseo 28.12.2015, 12:33
Привет, народ, помогите, не могу авторизоваться, нашел демку в пакете с делфой, там идет авторизация к популярным сервисам, гугл, твиттер и т.д., так вот, взял твиттер, получаю пин код, получаю токены, потом пытаюсь отправлять запрос, но прога пишет что авторизация не прошла, есть ли у кого нить код рабочий, я уже все форумы облазил, все что находил перепробывал, все уже устарело 

Автор: Akella 29.12.2015, 11:15
Цитата
прога пишет что авторизация не прошла


так и пишет: авторизация не прошла

а может и не прога "пишет"?

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Avtorizatsiya-cherez-OAUTH-Twitter-id56810284ae2015e4448b4568#findElement_E7045_5682413bae2015de1fd29294_0

Автор: albionseo 29.12.2015, 14:13
вроде бы разобрался немного, сейчас непойму как сформировать одну строку
вот сам код
Код

procedure TForm1.StartClick(Sender: TObject);
var
  PostData:TStringList;
begin
     idhttp1.Request.Host:='api.twitter.com';
     idhttp1.Request.Connection:='keep-alive';
     idhttp1.Request.Accept:='*/*';
     idhttp1.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
     idhttp1.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.3';
     idhttp1.Request.AcceptEncoding:='gzip,deflate';
     idhttp1.Request.UserAgent:='TwitterAndroidSDK/1.5.0.78 Lenovo A536/4.4.2 (LENOVO;Lenovo A536;Lenovo;A536)';

     PostData:=TStringList.Create;
     PostData.Clear;
     PostData.Add('oauth_consumer_key=<oauth_consumer_key>'); - это есть
     PostData.Add('oauth_consumer_secret=<oauth_consumer_secret>'); - это есть
     PostData.Add('oauth_nonce='+md5(IntToStr(random(1000)))); - тут вроде что то типа соли, случайное значение
     PostData.Add('oauth_signature=2Lx4d9PrxU8G%2BKPu6xwXqCI5mP0%3D'); - вот это непонятно
     PostData.Add('oauth_signature_method=HMAC-SHA1'); - тип шифрования
     PostData.Add('oauth_timestamp='+inttostr(DateTimeToUnix(Now))); - время отправки запроса
     PostData.Add('oauth_version=1.0');
     memo1.Lines.Add(IdHTTP1.post('https://api.twitter.com/oauth/request_token',PostData)); - куда отправляем
end;


PostData.Add('oauth_signature=2Lx4d9PrxU8G%2BKPu6xwXqCI5mP0%3D');
непойму как вот это формируется

Автор: ElenHikari 30.12.2015, 12:10
Цитата

непойму как вот это формируется

Да это скорее всего какой-то сессионный хеш на бэкэнде.
Врядли ты сможешь его сэмулировать

Автор: Illusion Dolphin 1.1.2016, 19:59
Цитата

Да это скорее всего какой-то сессионный хеш на бэкэнде.
Врядли ты сможешь его сэмулировать 

Не несите пургу, это даже при незнании гуглится в 1 секунду https://dev.twitter.com/oauth/overview/creating-signatures

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)