2016-09-28 82 views
1

我想在與谷歌或在軌道任何其他社交網絡來實現的跡象。我已經跟着Codeplace教程,http://r12---sn-cvh7kn7y.googlevideo.com/videoplayback?sparams=dur,ei,expire,id,i錯誤註冊使用Google+在軌

我面臨以下的問題

Error: invalid_request 

Missing required parameter: client_id 

Learn more 

Request Details 
    access_type=offline 
scope=email profile 
response_type=code 
redirect_uri=http://localhost:9292/auth/google_oauth2/callback 
state=2f6a1b1d2e0a2fb1c75647a6d145efa907c3ee9038a8bb54 
client_id= 

我相關的代碼是 - omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do 
provider :google_oauth2,ENV['238730796202-.com'],ENV['TyqJqfiOJLoLgqRRGgTIynxt'] 
provider :facebook, ENV['1585034338471672'],ENV['3211b382a1636bdc747d37921aab2a90'] 
end 

sessioncontroller.rb

class SessionsController < ApplicationController 

def create 
    auth = request.env["omniauth.auth"] 
    puts auth 
    session[:omniauth] = auth.except('extra') 
    user = User.sign_in_from_omniouth(auth) 
    session[:user_id] = user_id 
    redirect_to root_url, notice:"Sign In" 
end 
def destroy 
    session[:user_id] = nil 
    session[:omniauth] = nil 
    redirect_to root_url, notice:"Sign OUT" 
end 
end 

user.rb

class User < ActiveRecord::Base 
    def self.sign_in_from_omniouth(auth) 
    find_by(provider: auth['provider'], uid: auth['uid'])|| 
    create_user_from_omniauth(auth) 
end 

    def self.create_user_from_omniauth(auth) 
     create(
    provider:auth['provider'], 
    uid:auth['uid'], 
    name:auth['info']['name'] 

    ) 
end 
end 
end 

任何一個能幫助我嗎?

回答

0

按照出現的錯誤,client_id丟失。

嘗試,其中通過執行此操作,以獲得的OAuth從谷歌API控制檯2.0憑證在documentation給定的基本步驟:

訪問的谷歌API控制檯獲得OAuth 2.0憑據諸如client IDclient secret那對Google和您的應用程序都是已知的。

另外,請嘗試通過谷歌API控制檯使「聯繫人API」「Google+的API」。正如本GitHub post指出,如果這些都沒有啓用,您會收到OAuth2::Error(Error: "Invalid credentials")說明未配置的訪問,當您嘗試進行身份驗證。

請嘗試通過給定的GitHub後,OmniAuth Google OAuth2 Strategy去的重要細節。