18

受信メールを処理し、受信者が社内ソフトウェアとやり取りできるようにするために、社内の Gmail 拡張機能を開発する必要があります。Gmail Contextual Gadget で OAuth 2.0 を使用する方法を理解しようとしていますが、これに関する特定のドキュメントが見つかりません。contextual + google-oauth (Google 推奨のキーワード) でスタック オーバーフローを検索しても、役立つものは見つかりませんでした。

標準ページを提供する前に、これがあることを確認してください。

  • 最低限、OAuth 2.0 を使用する Gmail コンテキスト ガジェット manifest.xml の例
  • 理想的には、ドメイン (マーケットプレイスではない) に展開する方法の説明があるため、実際に展開およびテストされていることがわかります。

たとえば、Contextual Gadgets ページの標準の hello の例は、OpenID (「openIdRealm」) を使用しており、OAuth 2.0 より前に記述されています。

https://developers.google.com/gmail/contextual_gadgets

OpenID は OAuth 2.0 では許可されていません:

https://developers.google.com/apps-marketplace/practices#3_use_oauth20

アプリケーションで OpenID または OAuth1.0 を使用しないでください。そのような使用の証拠は、アプリケーションが審査プロセスに失敗するという結果になります。

Contextual Gadget はクライアント側の Javascript アプリであり、Web サーバー アプリやインストール済みアプリとは大きく異なることに注意してください。したがって、OAuth 2.0 は次のように使用する必要があります。

https://developers.google.com/accounts/docs/OAuth2#clientside https://developers.google.com/accounts/docs/OAuth2UserAgent

しかし、コンテキスト ガジェットはコンテナー内で実行され、OAuth の最初の呼び出し (トークンを使用して Web サイトをコールバックする Google 呼び出しなど) を処理します。クライアント側に存在するコンテキスト ガジェットは、「秘密を保持することはできません」。私たちの Web サイト (リダイレクト ページ、https://example.com/oauth2callback ) は、クライアント側のガジェット コードにアクセスできるセッションにアクセス トークン (および場合によっては更新トークン) を保存する必要があります。

私は理想的には SSO を使用しません。これは、「市場に展開されたアプリケーションにのみ必要」であることがわかります。代替の導入は、Google Apps Extensions Consoleを使用する「ドメイン向け」です。

https://developers.google.com/google-apps/extensions-console/

しかし、拡張コンソールには、「ユーザーエクスペリエンスを改善しています。新しい開発者コンソールを試してください」と表示され、次のリンクにリンクしています。

https://console.developers.google.com/?redirected=true

開発者コンソール:

  • アプリ拡張コンソールで以前に作成されたプロジェクトが表示されます。それをクリックして大きなメニューを開くことができます(脇、左側にあります)
  • API & Auth / Credentials -- アプリのクライアント ID とシークレットを作成しました。どうやら、サービス アカウントやインストール済みアプリではなく、Web アプリを使用する必要があるようです。これは、Google サービスだけでなく、ユーザーのプライベート データ (メール アクセス) にアクセスしようとしており、スタンドアロンのインストール済みアプリではないためです。

コンテキスト ガジェットのどこにも、このクライアント ID を報告する場所はありません。それは登録して忘れますか?

また (バグ?)、サービス アカウント資格情報を作成していないにもかかわらず、パーミッションは「サービス アカウント」の下にクライアント ID を表示します。

次に、この新しい開発者コンソールからコンテキスト ガジェット (スタンドアロン アプリではない) をドメインにデプロイする方法がわかりません。左側の [概要] タブと [コンピューティング] タブの下には、クラウド展開関連のオプションしかないようです。

Apps Extensions コンソール (非推奨ではなく、改善されていると思われる) からデプロイしようとすると、次のエラーが表示されます。

Google Apps Marketplace    (I never deployed to marketplace, only my own domain)
Application installation not allowed.
The OAuth1.0 version is no longer available.
Instead, try installing the OAuth2.0 version.
[Return to dashboard]   (button)

さらに、[ダッシュボードに戻る] ボタンをクリックすると、開発も展開も許可されていないドメイン管理サイトに移動します。

https://admin.google.com/mydomain.com/

ところで、Apps Extensions Console は私が作成したリダイレクト ページにアクセスすることはなく、私のサイトのガジェット仕様ファイルを読み取ることもありません (約束どおり Google によってアクセスされることはありません)。 OAuth 2.0 を使用してください... または、Apps Extensions Console 自体がそれを使用せず、私を責めます!

したがって、Gmail Contextual App:

  • 非推奨?
  • 今は無理?
  • OAuth 2.0 で承認されていますか? どのように?
4

4 に答える 4

5

Google Contextual Gadgetsのドキュメントは悪い冗談です。時代遅れで間違っています。時間を無駄にしないでください。

ここでの答えは私に近づきましたが、実際に機能することはありませんでした。

幸いなことに、最終的にgmail.jsを見つけたので、必要なことを行うための Chrome 拡張機能を作成できました...

1- Gmail Chrome Extension Boilerplateプロジェクトをダウンロードします。これは、gmail.js を使用した Hello world サンプル chrome 拡張機能です。

2- main.js ファイルのメイン関数を次のように更新します。

var main = function(){

    gmail = new Gmail();
    gmail.observe.on("open_email", function(id, url, body, xhr) {

        // Inject a toolbar:
        var $email_body = gmail.dom.email_body();
        $email_body.prepend('<div class="my_toolbar"><a>Do something</a></div>');
    });
}

それはあなたにこれを与えるでしょう:

ここに画像の説明を入力

于 2016-02-04T03:56:43.140 に答える
4

同様の問題がありました。以下の手順で、ドメインの電子メールにガジェットを (かろうじて) 表示することができました。これが私が共有できるものです。

1) ( https://console.developers.google.com )経由でプロジェクトを作成しました。API サイド ナビゲーション メニューで Marketplace SDK を有効にしました。オンにしたら、ページの上部に移動して、Google Apps Marketplace SDK の「歯車」をクリックします。これにより、(元のコンソールに移動) へのリンクを含むページが表示されます。リンクをクリックしてください。

2) フォーム ページに転送されます。フォームのすべての必須フィールドに入力します。COB 拡張機能を確認し、テキスト フィールド Extractor Url の下でエクストラクター ID (事前に用意されたエクストラクターを使用しましたが、カスタム エクストラクターでテストしていません) を宣言し、テキスト フィールド Gadget Url を介してガジェット URL を宣言し、スコープを選択します。[追加] ボタンをクリックし、完了したら [変更を保存] ボタンをクリックします。

3) API アクセス メニューに移動し、OAuth 2 クライアント ID を作成します。

ここでの手順は明確ではありませんが、自分のドメインでガジェットを使用できるようにするために行ったことを共有します。

3) フォームの上部にある [インストール フローのテスト] ボタンをクリックしました。

4) このプロジェクトの編集者として admin ユーザーを追加しました。

5) 次に、ログアウトしてキャッシュをクリアし、管理者/ドメイン ユーザーとしてログインして、電子メールの下部にコンテキスト ガジェットを表示する必要がありました。

お役に立てれば。

于 2014-10-26T22:54:38.870 に答える
2

https://developers.google.com/gmail/contextual_gadgetsに記載されている方法は完全に時代遅れのようです。ガジェット用の Google Apps コンソールのフォームでさえ、時代遅れのようです。

この説明に従う必要があります: https://developers.google.com/apps-marketplace/preparing

Contextual Gadgets は現在、(アプリ コンソールではなく) API コンソールを使用して開発されており、エクストラクタなどを作成するためのフォームがあります。

于 2014-12-23T15:11:57.937 に答える
0

以下の手順に従ってください。

  1. 管理者の Gmail にログインします。
  2. 新しいタブを開き、http://console.developers.google.comと入力します
  3. Gmail の左パネルから API セクションをクリックします。
  4. 次の API を選択します
    。gmail API
    ii. Google マーケットプレイス API
    iii. カレンダー API
    iv. Google 管理 SDK
  5. 上記の API をすべて有効にした後、Google Apps Marketplace SDK を開き、[構成] リンクをクリックしてください (クライアント ID を生成する必要があります)。
  6. データに適切なデータを入力します。適切なサイズの画像もアップロードする必要があります
  7. すべての必須フィールドに入力し、Google の提案に従ってエクストラクタを追加します。
    i) パラメータ名はコンテキスト API に従っている必要があり、すべての値は「.*」である必要があります。そうしないと、ガジェットが Gmail に表示されません
  8. ユニバーサル サービス URL を有効にする
  9. COB 拡張機能を有効にする
  10. Gmail Contextual Gadget Extractors を追加します。ガジェットに複数のエクストラクタを追加できますが、ガジェット URL はすべてのエクストラクタで同じにする必要があります。
  11. すべてのエクストラクタに複数のスコープを追加できます
  12. すべての変更を保存します。

それで全部です !

参照用に以下のリンクをたどることができます: https://developers.google.com/apps-marketplace/preparing

于 2015-10-15T11:35:14.317 に答える