0

Google ピッカーが機能していないようです。PHP League Oauth Providerを使用してユーザーを認証しました

認証後、ユーザーの 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: createPicker で Google が定義されていません

これがなぜなのかわかりません。アクセス トークンを正しく使用していませんか?

ところで、複数のサブドメインがあり、Google Dev Console でそれらをワイルドカード化できないため、サーバー側のテクノロジを使用して accessToken ビジネスを引き継ぐ必要があります。したがって、このような標準的な例を使用してクライアント側で認証することはできません。

PS - 明らかに、これらは上記のコード ブロックの実際のトークン/シークレットではありません。それらは変更されました。

4

1 に答える 1