2014-03-04 99 views
2

我有我要上傳到谷歌市場的應用程序。該應用程序使用Google +登錄按鈕接收用戶的電子郵件。問題是,在域的管理員安裝應用程序之後,用戶仍然會看到授權屏幕(該應用程序想要:1.-知道您是誰2.-查看您的電子郵件地址)和市場人士告訴我們這是不正確的,用戶只需要點擊按鈕而不需要獲得許可。谷歌+登錄按鈕autorization屏幕

這是我使用的代碼:

<script type="text/javascript"> 
    (function() { 
     var po = document.createElement('script'); 
     po.type = 'text/javascript'; 
     po.async = true; 
     po.src = 'https://apis.google.com/js/client:plusone.js'; 
     var s = document.getElementsByTagName('script')[0]; 
     s.parentNode.insertBefore(po, s); 
    })(); 

    function signinCallback(authResult) { 
     if (authResult['status']['signed_in']) { 
      console.log(authResult); 
      gapi.client.load('oauth2', 'v2', function() { 
       gapi.client.oauth2.userinfo.get().execute(function(resp) { 
        console.log(resp.email); 
        document.getElementById('email').value = resp.email; 
        document.getElementsByClassName('popupEspera')[0].style.display='block'; 
        envia(); 
       }) 
      }); 

      document.getElementById('signinButton').setAttribute('style', 
        'display: none'); 
     } else { 

      console.log('Sign-in state: ' + authResult['error']); 
     } 
    } 
</script> 
<table width="95%">  
    <tr> 
     <td align="right"><span id="signinButton"> <span 
       class="g-signin" data-callback="signinCallback" 
       data-clientid="CLIENT_ID" 
       data-cookiepolicy="single_host_origin" 
       data-scope="https://www.googleapis.com/auth/userinfo.email"> 
      </span> 
     </span></td> 
    </tr> 
</table> 

你能告訴我怎樣才能使它不顯示授權屏幕給用戶一旦管理員已安裝在域中的應用程序?

謝謝

回答

0

我正在處理類似的問題。當域的管理員安裝您的應用時,他們會看到初始授權屏幕並接受。管理員的同意應授予您訪問您指定範圍的權利。因此,管理員安裝該應用程序的用戶不應該看到授權提示,因爲他們的管理員已經同意了。

的過程被稱爲域範圍內的代表團。它最近發生了變化。見我的問題&回答這裏https://stackoverflow.com/a/22134464/37759

更新谷歌應用程序的用戶可以從您的網站通過Google universal navigation bar登錄到您的應用程序,或直接。當用戶直接從您的網站登錄時,您需要向他們提供Sign-in With Google Apps button

+0

我用這個來獲得不同範圍的授權,但我需要一種方法來知道正在使用該應用程序的用戶的電子郵件。我正在使用Google App Engine,因此我嘗試了UserService,但Google告訴我,我們無法使用它。因此,我使用此Google +登錄按鈕來獲取電子郵件並能夠使用域範圍的委派。如果我使用「https://www.googleapis.com/auth/userinfo.email」作用域的域名威爾德代表團,則應用程序會收到服務帳戶電子郵件的電子郵件,而不是用戶的電子郵件。有沒有其他的方式來獲得電子郵件? – user1930068

+0

也許使用Directory API來檢索用戶信息? https://developers.google.com/admin-sdk/directory/v1/guides/manage-users#get_user –

+0

目錄API檢索所有的用戶列表中,但無法知道哪一個用戶正在使用的應用程序在這一刻;所以這不是一個有效的解決方案 – user1930068