Jan 2025【日本東北】溫泉三昧之旅① 在大雪飄落的雪國,追尋秘湯之宿與極上美食(秋田~探訪有日本溫泉界頂點之稱的秘湯乳頭溫泉鶴之湯)

圖片
飛機穿過厚重的雲層,眼前的世界瞬間變成一片白茫茫。大片的雪花,像是鵝毛般漫天飛舞,所有景物都披上了一層潔白的冬衣,只剩下模糊的輪廓,分不清是房屋、樹木還是道路。 下了飛機,一股寒風迎面而來,我不禁打了個寒顫,但也同時被眼前這片銀裝素裹的世界深深吸引。這就是東北的冬天啊!雖然寒冷,但卻充滿了獨特的魅力,如同一個冰雪的童話世界,等待著我們去探索。 我知道,這場大雪只是個開始,接下來幾天的旅程,將會是一場與冰雪共舞之旅。但我已經迫不及待地想要擁抱這片雪國大地,體驗這份獨一無二的冬季風情。 秋田位於日本本州島的北部,瀕臨日本海,冬天受到西伯利亞冷氣團的影響,降雪量非常豐沛。聽說這裡的雪可以堆積到好幾公尺高呢! 秋田的冬天,雖然寒冷,卻充滿了活力和熱情。首先,你可以在森吉山滑雪場滑雪,從雪道上俯衝而下,感受速度與激情!聽說那裡的樹冰也很有名,可惜這次我們沒時間去欣賞。 除了滑雪,秋田還有許多有趣的冬季活動。在橫手市的「橫手雪屋祭」,你可以看到各式各樣的雪屋,晚上點上燈,更是夢幻!聽說在雪屋裡還可以喝甜酒、吃麻糬呢! 當然,來到秋田,也別忘了品嚐當地的冬季美食。熱騰騰的米棒鍋,配上秋田特產的比內地雞和新鮮蔬菜,暖胃又暖心!還有,在寒冬中泡個暖呼呼的溫泉,更是人生一大享受! 剛踏進秋田機場的入境大廳,我就被眼前一個氣勢磅礡的「生剝鬼」給震懾住了!他身披粗獷的稻草蓑衣,手持木棒和裝滿白色紙片的桶子,臉上那副紅色面具更是令人印象深刻:獠牙外露、怒目圓睜,彷彿下一秒就要衝過來似的。 「生剝鬼」(なまはげ)是秋田縣男鹿半島的傳統民俗人物,也是當地家喻戶曉的傳奇角色。據說,生剝鬼是山神的使者,每年除夕夜都會來到村莊,挨家挨戶地驅趕懶惰和邪惡,為人們帶來好運和豐收。他們會大聲吼叫:「有沒有愛哭的小孩?有沒有不聽話的小孩?」,嚇唬孩子們要乖乖聽話,認真學習。 雖然生剝鬼看起來很可怕,但他們其實是善良的,是來保護人們的。生剝鬼的形象也反映了秋田人民勤勞勇敢、不畏艱難的精神。 生剝鬼的故事世代相傳,至今已有數百年的歷史。每年除夕夜,男鹿半島的村民都會舉行「生剝鬼節」,年輕人會裝扮成生剝鬼的樣子,挨家挨戶地拜訪,祈求來年平安順遂。 接著,我們從機場搭乘路線巴士來到了秋田車站,上次來造訪這裡,已是十年前的往事了。一踏進車站,我就被眼前這隻巨大的秋田犬玩偶給吸引住!它憨態可掬地趴在車站大廳中央,吐著粉嫩...

Using Google Contact API to import Gmail Contacts in Rails App

The Google Contacts API allows users to retrieve their email contacts from a gmail account without giving a gmail password to the requesting site. This system allows social networking site users to invite friends and find existing users they know without exposing their gmail accounts to malicious site owners or poor security practices.

The Contacts API allows developers to create, read, update, and delete contacts using the Google Data protocol, based on AtomPub," the announcement says. "It also allows for incremental sync by supporting the 'updated-min' and 'showdeleted' parameters.

邀請朋友是現今的社群網站必備的功能,許多社群網站都允許讓用戶透過GMail,Hotmail,Yahoo! Mail等郵件服務匯入自己的聯絡人列表來邀請朋友。早期在ASP.Net,JAVA,PHP這些程式語言的典型作法是透過一些Library來實作匯入聯絡人清單,而在Ruby on Rails則有Contacts Gem這類的套件可以使用;但缺點是用戶必須在第三方網站所提供的表單上鍵入自己的GMail帳號密碼,如此一來安全性問題就產生了,儘管提供此類功能的網站都會在旁邊註明不會儲存用戶的帳號密碼,但是你真的信的過這些網站嗎?所幸Google Contacts API的推出解決了這個問題,下面我們將實作透過Google的Authsub驗證方式在Rails網站上從Google Contact API匯入聯絡人列表的功能。


下圖是Twitter匯入GMail聯絡人功能的畫面:


首先需要到Google的註冊頁面註冊並驗證你的網域名稱,這裡的callback_url必須對映到應用程式裡的方法,然後我們還要上傳一個X.509 certificate檔案:

https://www.google.com/accounts/ManageDomains

Registration for Web-Based Applications
http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html

在*NIX和OS X平台上可以使用OpenSSL來產生RSA Keys和certificate(將www.example.com改成你的域名):

這個指令會產生rsakey.pem和rsacert.pem兩個檔案,將rsacert.pem上傳至Google的Manage Domains頁面,並將rsakey.pem放置到#{RAILS_ROOT}/config目錄下。

AuthSub in the Google Data Protocol Client Libraries
http://code.google.com/intl/zh-TW/apis/gdata/docs/auth/authsub.html

Authentication for Web Applications
http://code.google.com/intl/zh-TW/apis/accounts/docs/AuthForWebApps.html

之後當使用者按下"從GMail匯入聯絡人"連結後,使用者會被導向Google帳戶登入頁面(如果尚未登入),然後同意授權應用程式存取他們的GMail聯絡人資料,之後Google會傳回一個AuthSub Token給我們的應用程式。


授權應用程式存取Google聯絡人資料


下面是實作的Ruby程式碼:

首先我們在Google的Manage Domains頁面將callback_url設為http://www.example.com/authsub,因此我們可以在/config/routes.rb裡面添加路徑映射:

map.connect 'authsub', :controller => 'gmail_contacts', :action => 'authsub'

接下來新增一個GmailContacts Controller 內容如下:

然後在Application Controller添加下面內容:

接著在config/initializers目錄下建立一個google.rb 內容如下:

最後編輯/app/views/gmail_contacts/import.html.erb 內容如下:


現在我們已經可以成功從GMail匯入使用者的聯絡人列表,而且使用者並不需要在我們的網站上輸入任何GMail帳號密碼,所有的驗證過程都是在Google網站上以SSL安全連線來完成。接下來只要將這個部份整合到你網站上的邀請朋友功能,就能夠讓使用者選擇要發送邀請給哪些GMail上的聯絡人了!

參考資料:

Google Contacts API
http://code.google.com/intl/zh-TW/apis/contacts/

Contacts Gem at Github
http://github.com/cardmagic/contacts

ricardoalmeida / contacts_rails at Github
http://github.com/ricardoalmeida/contacts_rails

Google Data on Rails
http://code.google.com/intl/zh-TW/apis/gdata/articles/gdata_on_rails.html

Using Google OAuth in Ruby on Rails Sites
http://www.manu-j.com/blog/add-google-oauth-ruby-on-rails-sites/214/

Import Gmail Contacts using Ruby on Rails
http://blog.adsdevshop.com/2008/04/18/import-gmail-contacts-using-ruby-on-rails/

A Little Help on Importing Gmail Contacts using Ruby on Rails
http://www.theirishpenguin.com/2008/06/25/a-little-help-on-importing-gmail-contacts-using-ruby-on-rails/

Import contacts list in rails
http://blog.brijeshshah.com/import-contacts-list-in-rails/

blackbook gem (Contact Importer gem for Ruby on Rails)
http://saravani.wordpress.com/2009/03/13/blackbook-gem-contact-importer/

Fetching Cotacts From Gmail, Yahoo And Hotmail
http://puneetitengineer.wordpress.com/2008/09/26/fetching-cotacts-from-gmail-yahoo-and-hotmail/


Here is a (incomplete) list of pages with documentation for different open apis:

Hotmail: http://dev.live.com/contacts/
Gmail: http://googledataapis.blogspot.com/2008/03/3-2-1-contact-api-has-landed.html
Yahoo: http://developer.yahoo.com/social/contacts/ , http://developer.yahoo.com/addressbook/

熱門文章

[平成26年7月25日~28日]北アルプスの夏 ♪ 厳しく美しい後立山連峰南部3泊4日縦走★白馬八方から針ノ木岳(テント背負)

Mar 2025【新竹五峰】油羅山森呼吸:擁抱原始柳杉林秘境之美(羅山林道第一登山口往返)

Nov 2024【陽明山溫泉】老字號「馬槽花藝村」的溫泉管線已恢復|在木造山景湯屋享受半露天硫磺溫泉

Aug, 2023【桃園大溪】桃園小百岳編號23-溪洲山步道|適合訓練腳力、還能觀賞石門水庫的山水景色

Jan 2025【苗栗泰安】泰安警光山莊泡湯&彰化CP值極高的日本料理|沐藏料理所X海龍王|彰化板前料理 ♨️🍁🥢🍲

Sep 2024【桃園龜山】大棟山405高地散步(視野遼闊可遠眺大台北盆地,還能欣賞百萬夜景的好地方)

Jun 24~25, 2022【南橫三星】庫哈諾辛山+【南臺首嶽】關山(進涇橋登山口)|2天1夜野營登山

Feb, 2024【台中西區】桃太郎日本料理|隱身巷弄裡的39年老字號無菜單料理|食材新鮮、自然美味

Mar 2025【桃園復興】高遶溪古圳步道健行(第二期步道已完工,全長2.6公里)|隱藏版道地新疆料理~胡同彭家老舖新疆拉麵

2019, July 7~8【中國山東】老司機帶你攀登72位古代帝王曾登臨朝拜,以五嶽獨尊名揚天下的泰山(歷史典故+遊覽路線+遊記+照片)

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *