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

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

Connect LinkedIn Account into your Rails Application with Authlogic and OAuth

LinkedIn launched its new API in November 2009, allowing any developer brave enough to implement OAuth to integrate with one of the largest social networks around. Seeking an opportunity to really understand OAuth more fully and play around with the LinkedIn API at the same time, I created the LinkedIn connect sample code.

This is a sample Ruby on Rails tutorial to demonstrate how you can use the LinkedIn API to authenticate users and pull their profile data into your own website.


GETTING STARTED


Before you can use the LinkedIn API, you'll need to set up your API keys.

Getting Started with the LinkedIn API


1. Where do I begin? Start by navigating to http://developer.linkedin.com. This is Linkedin developer portal where you can read API documentation, collaborate with other developers, and keep abreast of changes to the LinkedIn API. From here, click on “LinkedIn APIs.”

2. Now click on “Request an API Key”

3. After logging in, you’re now presented with an opportunity. You can create as many API keys as you like, one for each application that you create. Let’s get started.


4. This isn’t as complicated as it looks. Let’s look closely.
Application Developers: This is a list of your LinkedIn Connections that will receive network updates published by your application and is used only while it is in development mode. You need to be connected to any LinkedIn member that you want to put on this whitelist. Interface Language: Your application is provided in one or more languages to end users. Let us know what those languages are so we can better support you in the future. Programming Tools: Knowing what kind of programming languages and tools you use to develop your application lets us know what languages and environments are most important for us to support. Just a few more fields to go over!

5. Ready to get your API keys? When you’re done, click “Add Application”
Contact Info: Tell us how to get in contact with you should we have a question about or there is a problem with your application.
OAuth Redirect URL: If you have a static location that should always be used for your OAuth callbacks, you can specify it here. It is recommended that you use the oauth_callback parameter in the appropriate requests instead.
Agreement Language: If you’d like to force the login screen to appear in one of the languages LinkedIn supports, you can set that here. It is recommended to leave the setting at “Browser Locale Setting.”
Terms of Service/CAPTCHA: Please do read our API Terms of Use. You cannot create an API key without agreeing to our terms. You’ve likely seen a CAPTCHA before, and it needs little explanation.



6. You’ve got your API keys. What’s next?
The LinkedIn Developer Network is where you’ll find guidelines, documentation, and growing community of developers.


RUBY GEM INSTALLATION


First you need to upgrade your Rails VERSION to 2.3.x, and install the required Ruby Gems below:

1. Setup and use Authlogic

$ sudo gem install authlogic

2. Install OAuth and Authlogic_Oauth

$ sudo gem install oauth
$ sudo gem install authlogic-oauth

3. Install other required Ruby gems

$ sudo gem install json
$ sudo gem install crack

Or for older version of Rails, you can install it as a plugin:

$ script/plugin install git://github.com/binarylogic/authlogic.git
$ script/plugin install git://github.com/jrallison/authlogic_oauth.git

* Authlogic at Github:http://github.com/binarylogic/authlogic
* Authlogic Example: http://github.com/binarylogic/authlogic_example


SETUP API KEY IN YOUR APP


Create load_linkedin_config.rb in #{RAILS_ROOT}/config/initializers directory

Create linkedin_config.yml in #{RAILS_ROOT}/config directory



DATABASE MIGRATION


1. Make some changes to user table in your database:

$ script/generate migration AddLinkedinConnectToUsers

2. Create Position,Education and Connection model:

$ script/generate model position

$ script/generate model education

$ script/generate model connection


3. Modify the User model, add the content below to the #{RAILS_ROOT}/app/models/user.rb:

The private method "populate_oauth_user", which is called before user record created, and is used to fetch profile info (name, headline, industry, profile pic, public url, summary, specialties, web urls) in LinkedIn.com, and save these info to your user record. The other private method "populate_child_models", which is called after user record created, and which will save past position info (companies, job titles, durations, descriptions), education info (schools, degrees, field of study, dates, etc) and connections info (names, industries, headlines, profile pics) for user.

4. Modify the Connection model, add the contents below to the #{RAILS_ROOT}/app/models/connection.rb:

5. Modify the Education model, add the content below to the #{RAILS_ROOT}/app/models/education.rb:

6. Modify the Position model, add the content below to the #{RAILS_ROOT}/app/models/position.rb:

7. Create UserSession model, and define the oauth_consumer class method on your UserSession model:


CONTROLLER METHOD


You only need to save your objects this way if you want the user to authenticate with their OAuth provider.

That being said, you probably want to do this in your controllers. You should do this for BOTH your User objects and UserSession objects (assuming you are authenticating users). It should look something like this:

You should save your @user objects this way as well, because you also want the user to authenticate with OAuth.

In my case, I have to integrating the LinkedIn OAuth Sign in feature to my current Rails project, so I changed the "Create" method in my UsersController like this way:

When the user click on the LinkedIn Login button and we can't find the oauth_token and oauth_secret in the database, the user will be redirect to signup page with "linkedin_user" parameter. After fill in the fields, they will be redirect to LinkedIn authentication page, then user record will be created. If we can find the oauth_token and oauth_secret in the database, the user will be login to the site.



ADD REGISTER BUTTON


You can simply use the "oauth_register_button" helper method to add LinkedIn register buttons to your views, like this:

Now add some style in your CSS file for LinkedIn button:



NEXT STEPS


Now we have user's LinkedIn data saved in the database, so you can write some codes to show the user's LinkedIn profile data (such as Username, Headline, Location, Education, Position, Websites, Skills, Experience, Connections) in the website.

You may want to add methods to update profile info on each login or update request. Or pull status updates, specialties, and current position for connection.

If you're interested in learning more about LinkedIn and OAuth, I encourage you to checkout Taylor Singletary's presentation LinkedIn OAuth: Zero to Hero.

熱門文章

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

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

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

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

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

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

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

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

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

【美國加州】加州一號公路自駕遊~Half Moon Bay、17 Mile Drive、Bixby Greek Bridge、Big Sur、McWay Falls、Elephant Seal Rookery

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *