https://auth0.com/docs/quickstart/spa/angular/no-apiで説明されている auth0 angularjs チュートリアルを完了し、Twitter へのログインに成功しました (トークンを取得しました)。ユーザーのタイムラインなどを取得するために、いくつかのリクエストを twitter API に実行するシード プロジェクトを拡張したいと考えています。
$http
jsonp でリクエストを実行し、Authorization ヘッダーを使用して app.js にリクエスト インターセプターを追加してみました。次のようになります。
ホームコントロール
$http.jsonp('https://api.twitter.com/1.1/statuses/home_timeline.json?callback=JSON_CALLBACK')
.then(function(data) {
console.log(data);
});
App.js
.config( function myAppConfig ($routeProvider, authProvider, $httpProvider, $locationProvider, jwtInterceptorProvider, RestangularProvider) {
...
$httpProvider.interceptors.push('jwtInterceptor');
})
.factory('jwtInterceptor', function(store) {
return {
request: function(config) {
config.headers = config.headers || {};
config.headers.Authorization = 'Bearer ' + store.get('token');
console.log(config);
return config;
}
};
})
応答は 401 Authorization Required を返します:
リソースの読み込みに失敗しました: サーバーは 401 のステータスで応答しました (認証が必要です)
https://api.twitter.com/1.1/statuses/home_timeline.json?callback=angular.callbacks._0
私は何を間違っていますか?タイムラインの取得をリクエストする前に、別のことを作成する必要がありますか? たぶん、oauth の動作について混乱していて、リクエストを行うには access_token が必要ですか?
前もって感謝します。