看板 Soft_Job 關於我們 聯絡資訊
小弟想要製作一個按鈕,當按下按鈕後會跳出Google Account的驗證視窗 接著選取帳號後,會跳出Google Picker供選取該帳號的Google Drive檔案 程式碼如下: <script type="text/javascript"> var developerKey = '1111111111111'; var clientId = "22222222222" var scope = ['https://www.googleapis.com/auth/photos']; var pickerApiLoaded = false; var oauthToken; //Use the API Loader script to load google.picker and gapi.auth. function onApiLoad() { console.log("onApiLoad"); gapi.load('auth2', { 'callback': onAuthApiLoad }); gapi.load('picker', { 'callback': onPickerApiLoad }); } function onAuthApiLoad() { console.log("onAuthApiLoad"); window.gapi.auth2.authorize({ 'client_id': clientId, 'scope': scope, 'immediate': true //True:Popup window everytime; False:No popup window }, handleAuthResult); } function onPickerApiLoad() { console.log("onPickerApiLoad"); pickerApiLoaded = true; createPicker(); } function handleAuthResult(authResult) { console.log("handleAuthResult"); if (authResult && !authResult.error) { oauthToken = authResult.access_token; createPicker(); } } // Create and render a Picker object for picking user Photos. function createPicker() { console.log("createPicker"); if (pickerApiLoaded && oauthToken) { var picker = new google.picker.PickerBuilder() addView( new google.picker.DocsView() .setIncludeFolders(true)) .setOAuthToken(oauthToken).setDeveloperKey(developerKey) .setCallback(pickerCallback).build(); picker.setVisible(true); } } <body> <input id="search" type="button" value="Button" onclick="onApiLoad()"/> </body> 但是當按下按鈕後,有跳出選取帳號的視窗, 選完視窗後,有時第一次可以成功跳出Picker, 但再次按下按鈕後,就不會跳出Picker了,而那時console的訊息如下: Uncaught TypeError: (b || "").split is not a function 想請教要怎麼修改才能每次按下按鈕都能成功叫出Picker? 先謝謝各位大大了! m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.165.66 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1497428797.A.567.html ※ 編輯: qazsd (59.124.165.66), 06/14/2017 16:31:38
brian80122: 建議程式碼可以放 https://jsfiddle.net/ 06/14 17:13
SmallpTsai: https://gist.github.com/Daniel15/5994054 可參考這 06/14 20:05
SmallpTsai: 個, 你的 createPicker看來會被呼叫二次, 靠變數來決 06/14 20:06
SmallpTsai: 定要不要進去, 連結裡的判斷方法似乎比較好理解 06/14 20:06
qazsd: 我試著貼上樓上大大的code並且執行python -m http.server 06/15 15:04
qazsd: 8000,然後開啟localhost:8000,還沒按"Pick File"按鈕就可 06/15 15:09
qazsd: 透過Chrome的console看到此訊息:http://imgur.com/a/XwBLe 06/15 15:10
qazsd: 但是github上示範的網頁(https://tinyurl.com/y8amzak7) 06/15 15:12
qazsd: 沒有那些error messages 06/15 15:12
qazsd: 這是我apache server需更改X-Frame-Options設定嗎 06/15 15:23
qazsd: 解決了,原來是client_id多加了js裡的預設字串 06/15 17:22