Tìm hiểu gem Koala
Bài đăng này đã không được cập nhật trong 8 năm
`- # Tìm hiểu gem Koala
Koala
là một thư viện facebook cho Ruby
dùng để hỗ trợ Graph API
, REST API
, update thời gian thực, kiểm tra người dùng và xác thực OAuth.
Gem
Koala được viết ra với 4 mục đích chính như sau:
- Nhẹ:
Koala
nhẹ và đơn giản hơn thư viện riêng củafacebook
, cung cấp các bộ truy vấnAPI
và trả vềJSON
. - Nhanh hơn
- Linh hoạt: hỗ trợ hầu hết các phiên bản như
JRuby
,Rubinius
,REE
... - đưa ra các phiên bản thử nghiệm
cài đặt
Thêm vào Gemfile
gem "koala", "~> 2.2"
bundle
Cách khác
chạy lệnh sau:
gem install koala
Graph API
Để sử dụng Graph API
bạn cần có một token
. Bạn có thể lấy token bằng cách vào trang Graph API Explore sau đó chọn tên ứng dụng
và cuối cùng là click vào get Access Token
require 'koala'
@graph = Koala::Facebook::API.new(oauth_access_token)
profile = @graph.get_object("me")
friends = @graph.get_connections("me", "friends")
@graph.put_connections("me", "feed", message: "I am writing on my wall!")
# Three-part queries are easy too!
@graph.get_connections("me", "mutualfriends/#{friend_id}")
# You can use the Timeline API:
# (see https://developers.facebook.com/docs/beta/opengraph/tutorial/)
@graph.put_connections("me", "namespace:action", object: object_url)
# For extra security (recommended), you can provide an appsecret parameter,
# tying your access tokens to your app secret.
# (See https://developers.facebook.com/docs/reference/api/securing-graph-api/
# You'll need to turn on 'Require proof on all calls' in the advanced section
# of your app's settings when doing this.
@graph = Koala::Facebook::API.new(oauth_access_token, app_secret)
# Facebook is now versioning their API. # If you don't specify a version, Facebook
# will default to the oldest version your app is allowed to use. Note that apps
# created after f8 2014 *cannot* use the v1.0 API. See
# https://developers.facebook.com/docs/apps/versions for more information.
#
# You can specify version either globally:
Koala.config.api_version = "v2.0"
# or on a per-request basis
@graph.get_object("me", {}, api_version: "v2.0")
Kết quả trả về là dữ liệu dạng JSON
từ máy chủ của Facebook
(ví dụ như hash)
Khi lấy dữ liệu trả về một mảng kết quả (ví dụ khi gọi API#get_connections
hoặc API#search
) thì đối tượng GraphCollection
được trả lại.
# Returns the feed items for the currently logged-in user as a GraphCollection
feed = @graph.get_connections("me", "feed")
feed.each {|f| do_something_with_item(f) } # it's a subclass of Array
next_feed = feed.next_page
# You can also get an array describing the URL for the next page: [path, arguments]
# This is useful for storing page state across multiple browser requests
next_page_params = feed.next_page_params
page = @graph.get_page(next_page_params)
Bạn cũng có thể gọi hàng loạt Facebook API
cùng một lúc:
# Returns an array of results as if they were called non-batch
@graph.batch do |batch_api|
batch_api.get_object('me')
batch_api.put_wall_post('Making a post in a batch.')
end
REST API
Trường hợp các Graph API và REST API
cũ trùng lên nhau, bạn nên chọn Graph API
. Koala
hỗ trợ các REST API
bằng cách sử dụng giao diện rất giống nhau.
@rest = Koala::Facebook::API.new(oauth_access_token)
@rest.fql_query(my_fql_query) # convenience method
@rest.fql_multiquery(fql_query_hash) # convenience method
@rest.rest_call("stream.publish", arguments_hash) # generic version
Bạn có thể sử dụng Graph API trên cùng một đối tượng.
@api = Koala::Facebook::API.new(oauth_access_token)
fql = @api.fql_query(my_fql_query)
@api.put_wall_post(process_result(fql)
Cấu hình
# config/initializers/koala.rb
require 'koala'
Koala.configure do |config|
config.graph_server = 'my-graph-mock.mysite.com'
# other common options are `rest_server` and `dialog_host`
# see lib/koala/http_service.rb
end
** còn rất nhiều chức năng nữa bạn có thể tham khảo thêm tại Koala
All rights reserved