2013-11-27 13 views
10

Ich erhalte einen Fehler mit einem Ruby-Skript mit dem 'Twitter' Juwel. Der Teil meines Skript, das den Fehler produziert istFehler mit Ruby Twitter API

require 'twitter' 
require 'net/http' 
require 'json' 

#### Get your twitter keys & secrets: 
#### https://dev.twitter.com/docs/auth/tokens-devtwittercom 
Twitter.configure do |config| 
    config.consumer_key = 'xxxxxxx' 
    config.consumer_secret = 'xxxxxxx' 
    config.oauth_token = 'xxxxxx' 
    config.oauth_token_secret = 'xxxxxxx' 
end 

Der Fehler sagt undefined method 'configure' for Twitter:Module (NoMethodError) jedoch die ‚twitter‘ und ‚json‘ Edelsteine ​​sind beide in meinem gemfile so bin ich nicht sicher, warum diese Methode nicht definiert wäre, .

+0

beziehen, welche Version des Edelsteins sind verwendest du? In der Dokumentation steht, dass die Konfiguration über die Twitter :: REST :: Client.new-Methode erfolgt. – Zippie

+0

In meiner Gemfile.lock-Datei heißt es "twitter (5.0.0)" – user1893354

+1

Folgen Sie der Dokumentation von hier: https: // github.com/sferik/twitter – Zippie

Antwort

17

Sie tun es auf die "alte" Weise. Ab Version 5 ist die globale Konfiguration nicht mehr verfügbar. Also, im Grunde müssen Sie die Config-Parameter übergeben, wenn Sie einen Client initialisieren.

Zum Beispiel:

client = Twitter::REST::Client.new do |config| 
    config.consumer_key  = "YOUR_CONSUMER_KEY" 
    config.consumer_secret  = "YOUR_CONSUMER_SECRET" 
    config.access_token  = "YOUR_ACCESS_TOKEN" 
    config.access_token_secret = "YOUR_ACCESS_SECRET" 
end 

Und dann benutzen Sie einfach, dass Client-Abfragen zu tun, wie zum Beispiel:

client.sample do |tweet| 
    puts tweet.text 
end 

nur Weitere Informationen zu Sferik's Twitter Gem

+3

Wenn ich eine Liste der letzten 4 Tweets bekommen möchte, wie würde ich das tun? Ich kann auf keinem der Controller auf den Client zugreifen, da "Client" mir einen NameError bringt - diese Dokumentation frustriert mich. Sie zeigen keinen Controller-Code an ... – Peege151