Oct 21~24, 2023【晚秋の贅沢な山旅 PART①】從名古屋搭車至長野|在北阿爾卑斯山麓的文藝小鎮信濃大町散步、品嚐美味的炸豬排定食和咖啡

圖片
今年10月下旬,趁著深秋季節,請了兩天特休假,飛往日本中部北陸地區,探訪兩處幾年前就想去的地方。其中一處是位於 新潟縣 和 長野縣 交界處的日本百名山【 雨飾山(Mt. Amakazari) 】,10月中下旬的紅葉全盛期,是造訪這座 日本百名山 的最佳時間點,且因爲海拔高度只有兩千公尺左右,相比三千公尺級的 北阿爾卑斯山脈 ,這裡的積雪時間略晚一些。即使到了10月下旬,只要沒有強烈冷氣團,沒有雪季登山裝備也還是能夠登頂。 另一處則是少為人知的 秋季限定路線 ,黑部峽谷【 下ノ廊下 】(下之廊下),這個地方除非是登山客,不然連一般日本人都不太普遍聽過。 下之廊下 位於 黑部大峽谷 的北部地區,因為靠近 日北海 ,冬季這裡是豪雪地帶,只有從每年9月下旬登山道的積雪完全融化後,到11月上旬左右,山區再次降雪之前,大約一個月左右的時間可以通行。 據聞2022年因融雪較慢,能通行的時間只有短短兩週,而今年則是融雪較早,9月中旬就全面開通了。前陣子9月來日本爬山時,原本就有計畫要來這裡,不過後來因為一些原因,就提前返國了。最終等到10月下旬的深秋,也盼到了連續幾日都是好天氣的日子,終於如願前來造訪! 每年10月下旬至11月上旬,是 下ノ廊下 的紅葉最盛期,也是登山客最多、最混雜的時期。其壯闊的峽谷絕景、險峻的斷崖峭壁、遠方覆上初雪的山岳景致、迷人的三段紅葉、還有途中有著被稱為「 秘湯中的秘湯 」的【 阿曾原溫泉 】,加上 一年之中只有極短時間可通行的條件 ,使得黑部峽谷【 下ノ廊下 】成為喜愛山岳之人無不嚮往造訪的山岳秘境。 黑部峽谷自古就是人跡罕至的秘境而廣為人知,江戶時代也因加賀藩的國境警備和森林管理而禁止進入,僅黑部奧山廻御用之役人在此巡邏。明治時代以後對外開放,黑部也成為眾多登山家的目標。其中,冠松次郎因致力探索峽谷而有「黑部之父」的稱號。 黑部峽谷以黑部湖(黑部水壩)為境,可分為 下之廊下 、 上之廊下 ,以及 奧之廊下 。「廊下」是山岳用語,意指「 絕壁之間的深谷 」,而「下之廊下」相當於黑部峽谷的心臟地帶,花崗岩岩壁間的激流從下游起形成白龍峽、十字峽、S字峽等景點。 由於行走於距離河面數十至上百公尺的斷崖峭壁間,許多區間寬度又十分窄小,是有點危險的路線, 每年都有人在這裡不慎摔死 (今年也不例外)。 日本國土地理院地圖(下之廊下) 據說今年秋天日本的下雨天數特別多

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/

熱門文章

[轉載] 洛克菲勒寫給兒子的38封信(全文)

May 2023【台中南屯】地雷店食記|森鐵板燒|用餐體驗差,價格超貴卻豪無價值。小心別踩雷!!!

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

September, 2012 白姑大山二天一夜~其實沒那麼累,只是路途遙遠

Sep, 2021【苗栗南庄】蓬萊林道Off Road小試|雨後很爛很濕滑|二傳低底盤車勿輕易嘗試

Sep, 2023【桃園龍潭】輕鬆登頂石門山欣賞石門水庫湖光山色|景春步道+小竹坑古道O型路線午後健行

Nov 20, 2022【新北烏來】信賢步道健行~輕鬆好走的生態步道,還可順遊內洞森林遊樂區

Feb 2023【台中和平】裡冷林道Off Road單車野營~順登谷關七雄之首八仙山!單車+野營+登山,三個願望一次滿足

May 2023【台中潭子】新田登山步道1+3+5號步道O型環走|噴汗爬1063木棧階梯、順登小百岳聚興山

Oct 21~24, 2023【晚秋の贅沢な山旅 PART②】黒部峽谷♡下之廊下|日本北阿爾卑斯山秘境健行+野營+秘湯溫泉 DAY 1(黒部水壩〜下之廊下〜阿曾原溫泉)

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *