Google Picker가 작동하지 않는 것 같습니다. PHP League Oauth ProviderAccessToken이있는 Google Picker가 작동하지 않습니다.
인증 후 내 사용자의 accessToken은 다음과 유사합니다.
ya67.Fi_dfioriogneegroig7Czdy54z0sdfdvnfr9fn38n3n93
이것은 피커를 렌더링하는 데 사용되는 Javascript 및 HTML 코드입니다.
<a href="{{ appContextInstallId }}/authenticate" class="btn info">
<i class="icon-bolt"></i> Authenticate
</a>
<button onClick="createPicker()">Add a new document</button>
<script type="text/javascript">
var developerKey = 'erteetr43gg-V34y4httytjyjytjyttyjyjyjjy';
var clientId = "373498750987-5dsfwerrwewerweewrl.apps.googleusercontent.com"
var appId = "373498750987"
var scope = ['https://www.googleapis.com/auth/drive'];
var pickerApiLoaded = false;
// Use the Google API Loader script to load the google.picker script.
// Create and render a Picker object for searching images.
function createPicker() {
var view = new google.picker.View(google.picker.ViewId.DOCS);
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setAppId(appId)
.setOAuthToken("{{ token|escape }}")
.addView(view)
.addView(new google.picker.DocsUploadView())
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
}
// A simple callback implementation.
function pickerCallback(data) {
// makes an ajax call....
}
</script>
<!-- The Google API Loader script. -->
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
나의 accessToken은 {{ token|escape }}
입니다.
"새 문서 추가"버튼을 클릭하면 다음 오류가 발생합니다.
Uncaught ReferenceError: google is not defined at createPicker
이유가 무엇인지 알 수 없습니다. 액세스 토큰을 올바르게 사용하지 않습니까?
덧붙여서, 나는 복수의 서브 도메인을 가지고 있기 (위해) 때문에, 서버 측 테크놀러지를 사용해 액세스 교환 사업을 실시 할 필요가 있습니다. 이것들은 Google Dev Console에서 와일드 카드로 사용할 수 없습니다. 따라서 표준 예제 인 like this one을 사용하여 클라이언트 측에서 인증 할 수는 없습니다.
PS - 분명히 위의 코드 블록에서 내 실제 토큰/비밀이 아닙니다. 그들은 변경되었습니다.