Google picker auth popup is being blocked

后端 未结 4 2067

I have a mobile site which lists jobs, the user applies and uploads their CV (resume) - I want them to be able to choose a file from their Google Drive.

I\'ve create

4条回答
  •  梦谈多话
    2021-01-02 07:15

    Just Skip to the bottom

    Here's the code that works for me currently. This is my first hour using this API though, so I really don't know what any of these functions do yet, nor do I know what the proper order and error handling is just yet, but at least this is functional now. Maybe it'll help someone else in the future.

    
    
    
        
        Google Picker Example
    
    
    
        
        
        

    Edit: If you get a pop-up window that doesn't load, just close it and click the button again. That fixed another issue I just had.

    Again, I don't know what I'm doing yet, so hopefully I can get a better understanding of this and clarify things later.

    E2: Ah, there's more information about OAuth2 over on the Javascript GAPI documentation page which can be found here: https://developers.google.com/api-client-library/javascript/features/authentication

    From another document, it appear that gapi.load('client', callback) will load auth2 if not already loaded. Calling gapi.load('client:auth2', callback) will just save 1 network request.

    Note: when you authorize your application using Oauth 2.0, you do not also need to set the API key as in the first example. However, it is a good practice to do so, in case your code ever expands to handle unauthorized requests.

    That explains why I could remove the API/developer key.

    Edit 3: Ok the above code is technically wrong.

    Warning: do not use this method alongside the recommended gapi.auth2.init and signIn flow. These are two distinct behaviors (Authorization for gapi.auth2.authorize vs Authentication for gapi.auth2.init/signIn) and will have unexpected issues if used within the same application.

    autorize is for single use authentications (if you were logged into 2 google accounts for instance). While using gapi.init() is meant to be for a more long term session (like for logging in and out of a website).

    How this is working currently, I do not know.


    Don't use the above code, just wanted to document the progress. Here's a better demo working with getAuthResponse()

    
      
      
        

    Status:

提交回复
热议问题