为什么我的Google Picker窗口出现在浏览器中

时间:2014-02-23 05:32:06

标签: javascript google-chrome google-drive-api google-picker

我正在为我正在开展的项目构建谷歌选择器。但是,下面的脚本是我使用Google Picker API编写的,用于打开页面中的选择器以允许用户将项目放入驱动器。我试图了解阻止窗口出现的代码函数中缺少的内容。

我应该将它包含在按钮中以激活它吗?

    <script>
        function onApiload() {
            gapi.load('auth', {'callback': onAuthApiLoad});
            gapi.load('picker');
        }
        function onAuthApiLoad(){
            window.gapi.auth.authorize({
                'client_id': '596875534635.apps.googleusercontent.com',
                'scope': ['https://www.googleapis.com/auth/drive']
            },  handleAuthResult);
        }
        var oauthToken;
        function handleAuthResult(authResult) {
            if (authResult && !authResult.error) {
                oauthToken = authReults.access_token;
                createPicker();
            }
        }
        function createPicker() {
            var picker = new google.picker.PickerBuilder()
                .addView(new google.picker.DocsUploadView())
                .addView(new google.picker.DocsView())
                .setAuthToken
                .setDeveloperKey('AIzaSyBTsUe7i_eezFJ3ndIT8axJCR6IpksyLs8')
                .build();
            picker.setVisible(true);
        }
    </script>
    <script src="https://apis.google.com/js/api.js?onload-onApiLoad">
    </script>

1 个答案:

答案 0 :(得分:2)

您需要将oauthToken变量传递给createPicker()函数中的setOAuthToken函数调用。其他一切看起来都很好(假设您正在使用正确的凭据)。所以你的createPicker()函数应该如下所示:

function createPicker() {
    var picker = new google.picker.PickerBuilder()
        .addView( new google.picker.DocsUploadView() )
        .addView( new google.picker.DocsView() )
        .setOAuthToken( oauthToken )
        .setDeveloperKey( 'AIzaSyBTsUe7i_eezFJ3ndIT8axJCR6IpksyLs8' )
        .build();

    // Render the picker model
    picker.setVisible( true );
}