2013-06-28 3 views
1

Я хочу войти в систему с учетной записью gmail/google, и я нашел этот учебник Gmail Login in Coldfusion. Я сделал все шаги, и после Войти моя страница перенаправления, то я хочу, чтобы отобразить информацию профиля пользователя, так что я сбросить этотВойти с учетной записью gmail в Coldfusion

<cfdump var="#session.profilesArray#"> 

, но это дает мне пустой array.why я не получаю мои данные в профиле после того, как успешно ло- Джин. Если я получаю неправильный способ для извлечения моего профиля, то какой правильный путь. Благодарю.

+2

сбрасывает всю область сеанса и видит, что на самом деле есть. –

+0

Весь мой сеанс находится в 'session.profilesArray'. Разве это не в этом? –

+0

profilesArray - это не весь сеанс. '' –

ответ

1

Вы просто добавьте эту строку в ваш scope Откройте Application.cfc, а затем добавить этот код изменения scope = "https://www.googleapis.com/auth/analytics.readonly" с scope = "https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile

вы можете просто добавить scope = "https://www.googleapis.com/auth/userinfo.profile, но если и хотите получить доступ к электронной почте затем добавить второй, как я отправляю в мой ответ.

 <cfset request.oauthSettings = 
      {scope = "https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile", 
            client_id = "Your-id", 
            client_secret = "your-secret", 
            redirect_uri = "redirect-page", 
            state = "optional"} /> 

Теперь вы можете получить информацию от пользователя функции, которые можно назвать как этого

<cfscript>    
     public function getProfile(accesstoken) { 

      var h = new com.adobe.coldfusion.http(); 
      h.setURL("https://www.googleapis.com/oauth2/v1/userinfo"); 
      h.setMethod("get"); 
      h.addParam(type="header",name="Authorization",value="OAuth #accesstoken#"); 
      h.addParam(type="header",name="GData-Version",value="3"); 
      h.setResolveURL(true); 
      var result = h.send().getPrefix(); 
      return deserializeJSON(result.filecontent.toString()); 
     }  
    </cfscript> 

      <cfoutput> 
      <cfset show = getProfile(session.ga_accessToken)> 
      <cfdump var="#show#"> 
      </cfoutput> 

Надеется, что это поможет вам.

+0

спасибо. Это помогает мне решить мою проблему. –