Witam, jestem w trakcie przebudowy swojej strony, na której będzie między innymi sekcja blog oraz mikroblog. Chciałbym, żeby to, co umieszczam na mikroblogu automatycznie “leciało” również do mojego konta na twitterze. Znalazłem taki gem: https://github.com/jnunemaker/twitter , ale za nic nie mam pojęcia jak go użyć Gdzie umieścić kod z Twitter.configure? Gdzie stworzyć nowy obiekt klienta? Jestem totalnie zielony, czy mógłby ktoś krok-po-kroku wytłumaczyć tak to zaimplementować (albo chociaż mniej-więcej) ?
Dodatkowe pytanie: wygenerowałem już swoje dane oauth (access tokeny) i wstawiłem w ten kod konfiguracyjny - czy powinienem ten kod jakoś zabezpieczyć (np. za ‘protected’ i jakoś przekazać przez helper_method dalej? (sam dokładnie nie wiem jak to się robi, dlatego tutaj również prosiłbym o pomoc) )
Niech mnie ktoś poprawi jeżeli źle mówię ale wydaje mi się, że kod konfiguracyjny wrzuć do katalogu config/initializers. Potem sobie w kontrolerze używasz Twitter.update("I'm tweeting with @gem!")
-
Rejestrujesz aplikacje w twitterze aby dostac wszystkie potrzebne klucze
-
Wrzucasz do config/initializers/twitter.rb
Twitter.configure do |config|
config.consumer_key = YOUR_CONSUMER_KEY
config.consumer_secret = YOUR_CONSUMER_SECRET
config.oauth_token = YOUR_OAUTH_TOKEN
config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end
3. W kodzie mozesz uzywac Twitter.update("I'm tweeting with @gem!")
ale bedzie to dzialalo tylko dla twojego konta
3,5. Jak chcesz zeby to dzialalo dla wszystkich to musisz pobrac od kazdego zainteresowanego uzytkownika jego tokeny przez oauth. Jak to zrobisz mozesz updatowac im statusy np tak
[code=ruby] def twitter_client(user)
if user && user.authentications.twitter
twitter = user.authentications.twitter
Twitter::Client.new(:oauth_token => twitter.access_token,:oauth_token_secret => twitter.secret_token)
end
end
twitter_client(current_user).update(“my new status”)[/code]
http://rdoc.info/gems/twitter/1.7.2/Twitter/Client
ps: Z tego co pamietam najnowszej wersji tego gema mogli cos pousuwac wiec kod moze nieznacznie sie roznic. W kazdym razie zasada jest taka sama
wszelkie problemy rozwiązane. Dzięki za wskazówki
Hej, mam pytanie jaki jest URL do aktualizacji statusu uzytkownika na Twitterze?
Uzywam gemu: omniauth-twitter
Mam dostep do access i secret tokenow uzytkownika. Podczas rejestracji chcialbym aby aplikacja zaaktualizowala status takiemu uzytkownikowi.
Znalazlem taki URL:
POST
https://api.twitter.com/1/statuses/update.json
POST Data
status=Maybe%20he%27ll%20finally%20find%20his%20keys.%20%23peterfalk&trim_user=true&include_entities=true
Jest to URL bez autoryzacji. Jakie parametry autoryzacji powinienem uzyc dodatkowo aby miec taka mozliwosc?
Znalazlem cos takiego:
https://dev.twitter.com/docs/auth/authorizing-request
[code]POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: /
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Authorization:
OAuth oauth_consumer_key=“xvz1evFS4wEEPTGEFPHBog”,
oauth_nonce=“kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg”,
oauth_signature=“tnnArxj06cWHq44gCs1OSKk%2FjLY%3D”,
oauth_signature_method=“HMAC-SHA1”,
oauth_timestamp=“1318622958”,
oauth_token=“370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb”,
oauth_version=“1.0”
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21[/code]
Problem w tym ze Hash: request.env[“omniauth.auth”] nie zawiera inormacji o wartosciach:
oauth_nonce=
oauth_timestamp
Moze wiecie tez jak wygenerowac signature dla Twittera? Istnieje jakas gotowa metoda?