2011-01-15 10 views
0

Nun, ich versuche eine App zu machen, die die Seiten einer Freunde-Seite benutzt. Die Sache ist, es ist sehr neu, nicht viele Leute wissen darüber. Und nur Beispiele sind in PHP geschrieben. Dies ist mein erstes Mal mit einer API irgendeiner Art arbeiten, so nicht sicher, wo ich anfangen soll. Ich muss wissen, alles ist die Grundlagen, dann kann ich höchstwahrscheinlich es alleine aussteigen ..Kann mir jemand helfen, PHP-Code in Rails zu übersetzen?

require __DIR__ . '/config.php'; 
require realpath(__DIR__ . '/../src/') . '/dailybooth.php'; 

$dailybooth = new DailyBooth(array(
'client_id' => DAILYBOOTH_CLIENT_ID, 
'client_secret' => DAILYBOOTH_CLIENT_SECRET, 
'redirect_uri' => DAILYBOOTH_REDIRECT_URI, 
)); 

$dailybooth->authorize(); 

Ich weiß, was die benötigen die Datei, ich muss nur wissen, wie genau würde ich dies in Schienen machen . (Die App wird autorisiert)

+1

Dies ist nur Code Aufruf der API. Es wird nicht viel Sinn machen, dies auf Rails zu portieren - Sie müssten auch die gesamte API portieren. (Es kann jedoch anders sein, wenn die API in Ruby in identischer Form verfügbar ist) –

+0

@Pekka Nun, ich möchte diese Methode nicht unbedingt verwenden, ich möchte nur lernen, wie man mit der API-Periode arbeitet. – Rickmasta

+0

@Rickmasta Also gibt es eine Rails API, aber keine Beispiele dafür? –

Antwort

4


require 'rubygems' 
require 'pp' 
require 'httparty' 

#this is by no means complete. it is just a starting place 
class DailyBooth 

    include HTTParty 

    API_ROOT = 'https://api.dailybooth.com/v1' 

    AUTH_ROOT = 'https://dailybooth.com/oauth' 

    def initialize(options) 
    @oauth_token = options.fetch('oauth_token', nil) 
    @client_id = options.fetch('client_id', nil) 
    @client_secret = options.fetch('client_secret', nil) 
    @redirect_uri = options.fetch('redirect_uri', nil) 
    end 

    def authorize_url 
    AUTH_ROOT + "/authorize?" + {"client_id" => @client_id, "redirect_uri" => @redirect_uri }.to_params 
    end 

    def oauth_token(code) 

    response = token({ 
      'grant_type' => 'authorization_code', 
      'code' => code, 
      'client_id' => @client_id, 
     'client_secret' => @client_secret, 
     'redirect_uri' => @redirect_uri 
    }) 

    @oauth_token = response.fetch('oauth_token', nil)  
    end 


    def token(params) 
    self.class.post(AUTH_ROOT + '/token', {:body => params}); 
    end 

    def get(uri, query = {}) 
    self.class.get(API_ROOT + uri, {:query => {:oauth_token => @oauth_token}.merge(query) }) 
    end 

    def post(uri, params = {}) 
    self.class.post(API_ROOT + uri, {:body => {:oauth_token => @oauth_token}.merge(params) }); 
    end 

end 


dailybooth = DailyBooth.new({ 
    'client_id' => '', 
    'client_secret' => '', 
    'redirect_uri' => '', 
    #'oauth_token' => '' 
}); 

#first redirect the user to the authorize_url 
redirect_to dailybooth.authorize_url 

#on user return grab the code from the query string 
dailybooth.oauth_token(params[:code]) 

#make request to the api 
pp dailybooth.get('/users.json') 
+0

Das ist ein guter Start! Danke, Mann! – Rickmasta

2

Fragen Sie, wie Sie eine Verbindung zur DailyBooth API in Ruby/Rails herstellen? Es ist nur eine REST-API, so dass Sie Ihre Arbeit von etwas wie dem Dropbox-, Tumblr-, Flickraw- oder Twilio-Juwel ableiten können, aber es wird über Ihrem aktuellen Wissen liegen, das ich annehmen würde, vorausgesetzt, was Sie in Ihrer Frage erklärt haben.

Leider scheint DailyBooth ihre Dokumentation nicht zu haben, und es gibt kein Ruby SDK oder ein Juwel, das dafür verfügbar ist.

0

Es ist sehr einfach, einen API-Client mit HTTParty zu erstellen. Siehe das Beispielverzeichnis in der Quelle. Das einzige andere Stück ist OAuth. Das Twitter-Juwel verwendet HTTParty und OAuth, also haben Sie zumindest ein Beispiel.

Verwandte Themen