質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

受付中

ElectronからだとGoogleAPIのgetTokenが実行できない

yuta0801
yuta0801

総合スコア0

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

0回答

0評価

0クリップ

4閲覧

投稿2017/07/01 02:55

###前提・実現したいこと
ElectronからGoogleAPIsのYouTubeのtokenを取得する。

###発生している問題
Qiitaにある[サンプル](http://qiita\.com/maximum80/items/645cae98c1094a80976c\)は動くが、
それをElectronに移植すると実行されません。

###該当のソースコード
Qiitaのソースを少し改変した物(動く)

js

var readline = require\('readline'\); var google = require\('googleapis'\); var OAuth2 = google\.auth\.OAuth2; var secret = require\('\./google-secret\.json'\); var CLIENT_ID = secret\.installed\.client_id, CLIENT_SECRET = secret\.installed\.client_secret, REDIRECT_URL = secret\.installed\.redirect_uris\[0\], SCOPE = 'https://www\.googleapis\.com/auth/youtube\.readonly'; var rl = readline\.createInterface\({ input: process\.stdin, output: process\.stdout }\); var auth = new OAuth2\(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL\); var url = auth\.generateAuthUrl\({ scope: SCOPE }\); var getAccessToken = function\(code\) { console\.log\(code\); // 入力したもの表示 auth\.getToken\(code, function\(err, tokens\) { if \(err\) { console\.log\('Error while trying to retrieve access token', err\); return; } console\.log\(tokens\); // ここでtokenなどが表示された auth\.credentials = tokens; }\); }; console\.log\('Visit the url: ', url\); rl\.question\('Enter the code here:', getAccessToken\);

それをElectronに移植したコード

js

const {app} = require\('electron'\), prompt = require\('electron-prompt'\), OAuth2 = require\('googleapis'\)\.auth\.OAuth2, secret = require\('\./google-secret\.json'\); var mainWindow = null, optWindow = null, settings = {}; app\.on\('ready', \(\) => { var CLIENT_ID = secret\.installed\.client_id, CLIENT_SECRET = secret\.installed\.client_secret, REDIRECT_URL = secret\.installed\.redirect_uris\[0\], SCOPE = 'https://www\.googleapis\.com/auth/youtube\.readonly'; const auth = new OAuth2\(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL\); var authUrl = auth\.generateAuthUrl\({ scope: SCOPE }\); console\.log\(authUrl\); prompt\({title: 'YouTubeLiveSupport',label: 'コードを入力してくだいさい。'}\)\.then\(\(code\) => { console\.log\(code\); // 表示される auth\.getToken\(code, function\(err, tokens\) { // この中に処理が入らないで終了してしまう console\.log\('getting token'\); // 表示されない if \(err\) { console\.log\('Error while trying to retrieve access token', err\); return; } auth\.credentials = tokens; console\.log\(tokens\); // 表示されない }\); console\.log\(code\); // 表示される }\)\.catch\(console\.error\); }\);

###補足情報(言語/FW/ツール等のバージョンなど)
Elctron v1.6.11
electron-prompt ^0.2.0
googleapis ^20.0.1

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。