2012-11-07 33 views
0

是否有可能通過ruby on rails應用程序在linkedin中發佈。如果這麼友善地指導我如何去做。如何在rails上發佈linkedin應用程序?

我GOOGLE了很多,但沒有得到任何正確的解決方案。

我的代碼如下。

的控制器,

require 'rubygems' 
require 'linkedin' 
class AuthController < ApplicationController 

def index 
LinkedIn.configure do |config| 
    config.token = "somekey" 
    config.secret = "somesecret" 
end 

LINKEDIN_CONFIGURATION = { :site => 'https://api.linkedin.com', 
        :authorize_path => '/uas/oauth/authenticate', 
        :request_token_path =>'/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress+r_network+r_contactinfo', 
        :access_token_path => '/uas/oauth/accessToken' } 
client = LinkedIn::Client.new("some_key", "some_secret", LINKEDIN_CONFIGURATION) 
request_token = client.request_token(:oauth_callback => 
           "http://#{request.host_with_port}/auth/callback") 
session[:rtoken] = request_token.token # request token 
session[:rsecret] = request_token.secret # request secret 
redirect_to client.request_token.authorize_url 
end 

def create 
    @user = User.find_or_create_from_auth_hash(auth_hash) 
    self.current_user = @user 
    redirect_to '/' 
end 

protected 
    def auth_hash 
    request.env['omniauth.auth'] 
    end 

def callback 
if session[:atoken].nil? 
    pin = params[:oauth_verifier] 
    atoken, asecret = client.authorize_from_request(session[:rtoken], session[:rsecret], pin) 
    session[:atoken] = atoken # authentication token 
    session[:asecret] = asecret # authentication secret 
else 
    client.authorize_from_access(session[:atoken], session[:asecret]) 
end 
@profile = client.profile(:fields => [:first_name]).first_name 
@profiles = client.profile(:fields => [:last_name]).last_name 
@positions = client.profile(:fields => %w(positions)).positions 
@headline = client.profile(:fields => [:headline]).headline 
@educations = client.profile(:fields => [:educations]).educations 
@post = client.add_share({:comment => "blah"}) 
@user = client.profile(:fields => %w(positions)) 
@companies = @user.positions.all.map{|t| t.company} 
# And if you want the most recent company it can be accessed via companies[0] 
end 
end 

配置/初始化/ omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do 
provider :linkedin, "some_key", "some_secret", :scope => 'r_fullprofile r_emailaddress r_network', :fields => ["id", "email-address", "first-name", "last-name", "headline", "industry", "picture-url", "public-profile-url", "location", "connections"] 
end 
的意見

Headline : <%= @headline %> 
</br> 
Name : <%= @profile %> <%= @profiles %> 
<%= @positions %> 
<%= @post %> 
<%= @user %> 
<%= @educations %> 
<%= @companies %> 
</br> 
<br/> 
WELCOME !!! 
You have successfully logged in to through Your LinkedIn Profile !!! 
+0

我應該如何在LinkedIn上發帖?通過這個程序? –

回答

1

你通過郵局是什麼意思?你究竟想要發佈什麼?我假設你正在尋找從你的應用程序發佈網絡更新。在這種情況下,您需要授予您的應用「rw_nus」權限。只需將該成員權限添加到您的:request_token_path

:request_token_path =>'/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress+r_network+r_contactinfo+rw_nus' 
相關問題