http://memor.cc/
是台大創創學程的神奇夥伴們和敝人一起進行的小Project,
我們希望大家透過文字的書寫抒發情緒、進而記錄回憶。
默默,是一個收藏回憶的地方。
我們每週將精選一篇回憶,
以插畫為你的回憶增添風味,
永久保存。
粉絲專頁:https://www.facebook.com/memordotcc
默默網站:http://memor.cc/
這個平台剛起步,有些地方還不盡善美,
還請大家多給建議,感激不盡!
最後還是要拉讚一下,請幫我們按一下讚噢,拜偷拜偷 XD
最近在學RoR,把之前的東西改了一下變成可用的東西,紀錄與分享之。
讓RoR使用Facebook登入只要簡單的數個步驟 ( 不安裝奇怪的gem的情況下 )
假設網站的網域叫做 http://localhost:3000/
跟Facebook連結的Url叫做 http://localhost:3000/connect/ (推薦最後加 / )
1. 讓網站重新導向到 Facebook 的授權頁面 → 按確定之後會自動跳轉回自己網站的"那個url"
#跳轉的頁面url會像是這樣 http://localhost:3000/connect/?code=*****
2. 根據我們獲得的 code , 我們再去抓一個特定網址的內容,裡面的內容像是
access_token=********&***=****
#最重要的就是抓到那個access_token,有了他我們就能呼叫 Facebook的 Graph API
3. 用access_token去呼叫Graph API取得使用者的 Facebook ID, Name, Mail, 再跟內建 的User合併 ( 如果是authlogin做的使用者可能需要查一下對應的屬性 )
實際Code如下,只要做一個Controller,把他加到routes就好了
routes.rb 加上
match '/connect' => 'page#connect'
page_controller.rb
require 'uri' require 'json' require 'net/http' class PageController < ApplicationController
end
# 需要改裡面的常數 API_KEY 跟 SECRET_KEYdef connect aPP_HOST = "http://"+request.headers['Host']+"/connect/" @fACEBOOK_API_KEY = '*************' @fACEBOOK_SECRET_KEY = '***********' authcode = params[:code] if authcode url = "https://graph.facebook.com/oauth/access_token?client_id="+@fACEBOOK_API_KEY+"&redirect_uri="+aPP_HOST+"&client_secret="+@fACEBOOK_SECRET_KEY+"&code="+authcode uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE # read into this @out = (http.request Net::HTTP::Get.new(uri.request_uri)).body
respond_to do |f| |
※注意要去 https://developers.facebook.com/apps 申請 API_KEY跟SECRET_KEY 然後設定好網站Domain才能使用