我正在尝试使用朋友网站的api制作应用。事情是,这是非常新的,没有多少人知道它。并且只有用PHP编写的示例.. 这是我第一次使用某种api,所以不知道从哪里开始。所有我需要知道的是基础,然后我很可能自己得到它..
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();
我知道文件的要求是什么,我只需要知道我将如何在rails中做到这一点。 (授权应用程序)
答案 0 :(得分: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')
答案 1 :(得分:2)
您是否在询问如何连接Ruby / Rails中的DailyBooth API?它只是一个REST API,所以你可以将你的工作基于Dropbox,Tumblr,Flickraw或Twilio gem这样的东西,但是考虑到你在问题中解释的内容,它会高于你现在所知的。
不幸的是,DailyBooth似乎没有完成他们的文档,并且我找不到可用的Ruby SDK或gem。
答案 2 :(得分:0)
使用HTTParty创建API客户端非常简单。请参阅源代码中的examples目录。唯一的另一件是OAuth。 Twitter gem使用HTTParty和OAuth,所以至少你有一个例子。