【美國加州 Yosemite National Park】優勝美地國家公園健行之一.迷人的秋日美景。飽覽山谷與Vernal Falls、Nevada Falls兩大瀑布

圖片
「一生必去」這4個字的最高等級用語,絕對可以用來形容美國加州的「優勝美地國家公園」(Yosemite National Park),相信沒有人會反對。因為它在世界上的地位,彷彿就是「大自然的大教堂」。
優勝美地國家公園(Yosemite National Park),是美國國家公園內極為閃耀的一顆明珠,地處加州東北部,內華達山脈的西麓,曾是印第安原住民阿瓦尼奇人(Ahwahneechee)的故鄉。公園的範圍橫跨加州中西部圖奧勒米縣(Tuolumne)、馬里波薩縣(Mariposa)和馬德拉縣(Madera)。優勝美地國家公園於於1984年被納入聯合國教科文組織(UNESCO)世界遺產,每年吸引4百萬來自世界各地的遊客前來觀光。
優勝美地國家公園內,有超過95%的土地被指定為原生地域(wilderness),為了要保護公園的原貌,美國總統林肯於1864年6月30日,將優勝美地谷蝴蝶林(Mariposa)內的美洲衫巨木林,設為美國的第一座州立公園。並且在「國家公園之父」約翰•繆爾(John Muir,1838~1914)這位作家、科學家、保育先知的倡議之下,於1890年成為第二座國家公園。它幾乎是全美甚至全球最受歡迎的國家公園。
公園內除了有四面絕壁的優勝美地山谷,還有充滿高山美景的圖奧勒米牧場,自然風光令人歎為觀止。而它的美和大遠遠超過一般人所暸解,公園的佔地面積超過1,169平方英哩/284,899 公頃,而其中最多遊客造訪的的優勝美地谷(Yosemite Valley),只佔了整個公園不到1%的面積。優勝美地國家公園主要有四大景區,呈F型分佈,分別是優勝美地谷(Yosemite Valley)、山頂的冰川點(Gracier Point)、北側的第奧嘉(Tioga Pass)以及南端的瓦沃納(Wawona)景區。這次的優勝美地之旅,只有北側的第奧嘉景區沒有造訪,那裡就留待下次不同季節再去造訪吧!

優勝美地山谷在上一次冰河時期被冰川覆蓋,山谷呈U字型,兩旁峭壁上到處可見由冰川切削過的痕跡,其中最有名的就是半圓頂(Half Dome),這顆巨岩是冰河時期所形成的,峰頂海拔2,693公尺,歷時8,700萬年,在地質與歷史上他就是個不折不扣的巨人。只要你在優勝美地國家公園內,走到比較高的地點,幾乎從任何地方,都可以看到它的身影,據說 North Face 品牌 logo 的…

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封信(全文)

2013.5.25~26【新阿溪縱走】眠月線鐵道線探勘。順登松山、萬歲山、小笠原山、對高岳

2018, Jan 14【高雄】旗津半日遊&不老溫泉度假村泡湯&南橫公路梅山口賞梅花

2012 アルプスの夏:飛騨・北阿爾卑斯山脈南部の焼岳/槍・穂高連峰/表銀座単独縦走記錄。Day5 穗高岳山莊~涸沢岳~北穂高岳~飛騨泣き~A沢のコル~長谷川ピーク~大キレット~南岳小屋

斗六市70年老店 山姆紅燒羊肉爐

【南投信義】玉山國家公園散步★塔塔加六山之三:鹿林山、麟趾山、鹿林前山&八通關古道之雲龍瀑布健行

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

文章列表

聯絡我

名稱

以電子郵件傳送 *

訊息 *