Twitter APIについて質問させていただきたく、質問させていただきます。
JavaScriptでTwitterAPIを使ってツイートを取得したりツイートするアプリケーションを作る方法を調べると、普通のJavaScriptではなく、Node.jsやGoogleAppsScript(GAS)を使う記事が出てきます。「TwitterAPIは普通のJavaScriptでは使えず、Node.jsやGASでしか使えない」ということが暗黙知となっているように思うのですが、その理由といいますか、仕組みがいまいちよく分からず、それを知っておきたいと思います。
Node.jsについての理解ですが、このサイトによると、**「JavaScriptはプログラム言語そのもので、Node.jsはJavaScriptの処理系」「C++で言うところのGCCに相当する」**ということで、そのように理解しております。しかし、JavaScriptの処理系は既にChromeなどのブラウザに用意されていて、普段は当たり前のようにデバッグなどに使っているし、node.jsを使う必要性はどこにあるのか、にわかには分かりませんでした。
素人なりに類推するに、**「Chromeのようなブラウザに用意された既定のJavaScript処理系は、恐らくセキュリティーの観点から外部との通信方式に一部の制限を設けていて、それのせいでTwitterAPI
を利用することが出来ない。その束縛から逃れるためには、Node.jsやGASなどを使って独自に通信を定義してやる必要がある」**ということかと思っております。
このサイトの記事では、Google Apps ScriptでTwitterAPIを利用していますが、以下のTwitterAPIにアクセスするための準備のコードでは、OAuth認証を行っています:
// 認証用URL取得 function getOAuthURL() { Logger.log(getService().authorize()); } // サービス取得 function getService() { return OAuth1.createService('Twitter') .setAccessTokenUrl('https://api.twitter.com/oauth/access_token') .setRequestTokenUrl('https://api.twitter.com/oauth/request_token') .setAuthorizationUrl('https://api.twitter.com/oauth/authorize') // 設定した認証情報をセット .setConsumerKey(PropertiesService.getScriptProperties().getProperty("CONSUMER_API_KEY")) .setConsumerSecret(PropertiesService.getScriptProperties().getProperty("CONSUMER_API_SECRET")) .setCallbackFunction('authCallback') // 認証情報をプロパティストアにセット(これにより認証解除するまで再認証が不要になる) .setPropertyStore(PropertiesService.getUserProperties()); } // 認証成功時に呼び出される処理を定義 function authCallback(request) { var service = getService(); var authorized = service.handleCallback(request); if (authorized) { return HtmlService.createHtmlOutput('success!!'); } else { return HtmlService.createHtmlOutput('failed'); } }
憶測ですが、このOAth認証というものにおいて使われる通信方式が、Chromeのようなブラウザ標準装備のJavaScript処理系では利用できない仕様になっているのかもしれない、と考えています。
実際のところは、どういう理由から普通のJavaScriptでは利用できないのでしょうか?
ご回答よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー