Angularjs を使用して Twitter GET statuses/user_timeline にアクセスしようとしています。私はすでにベアラートークンを持っています。Angularjs を使用してアプリケーションのみの認証を行おうとしています。
エラー コード オプションhttps://api.twitter.com/1.1/statuses/user_timeline.json (匿名関数) @ angular.js:10722sendReq @ angular.js:10515serverRequest @ angular.js:10222processQueue @ angular.js:14745(anonymous関数) @ angular.js:14761Scope.$eval @ angular.js:15989Scope.$digest @ angular.js:15800Scope.$apply @ angular.js:16097bootstrapApply @ angular.js:1660invoke @ angular.js:4478doBootstrap @ angular. js:1658bootstrap @ angular.js:1678angularInit @ angular.js:1572(匿名関数) @ angular.js:28899trigger @ angular.js:3024eventHandler @ angular.js:3298 (インデックス):1 XMLHttpRequest はhttps://apiを読み込めません.twitter.com/1.1/statuses/user_timeline.json . プリフライトの応答に無効な HTTP ステータス コード 400 が含まれています
以下は私が書いたコードです。
var twitter = angular.module("twitterServices",["ngResource"]);
var auth = angular.module("authInterceptor",[]);
twitter.service("tweets",function($http,$resource)
{
var BearerToken = "some BEarer Token";
$http.defaults.headers.common.Authorization = "Bearer " + BearerToken;
$http.defaults.useXDomain = true;
var userTimeURL = "https://api.twitter.com/1.1/statuses/user_timeline.json"
return {
getUserStat : function()
{
return $http.get(userTimeURL);
$http.post(userTimeURL,
{
params : {user_id: 'siddmegadeth'}
},
{
headers: {'Accept': 'application/json', 'Content-Type': 'application/json'}
}).then(function success(response)
{
log(response);
});
}
}
});
auth.factory('intercept', [
"$q", "$window", "$location", function($q, $window, $location, session) {
var BearerToken = "some BEarer Token";
return {
request: function(config) {
config.headers = config.headers || {};
config.headers.Authorization = 'Bearer ' + BearerToken;
return config;
},
response: function(response) {
return response || $q.when(response);
},
responseError: function(rejection) {
// your error handler
}
};
}
]);
メインアプリで
var app = angular.module("myApp",["authInterceptor","ngMessages","ngRoute","ngAnimate","ngTouch","ui.bootstrap","ngResource","twitterServices"]);
app.config(function($routeProvider,$httpProvider)
{
$httpProvider.interceptors.push('intercept');
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$routeProvider.
when("/",{
templateUrl : "templates/landing.html",
controller : "landingCtrl"
})
.when("/login",{
templateUrl : "templates/login.html",
controller : "loginCtrl"
})
.otherwise({redirectTo : "/"});
});
app.run(function($rootScope)
{
console.warn("App Running");
});
コントローラーで
app.controller("globalCtrl",function($scope,$rootScope,$resource,$http,tweets)
{
$rootScope.slideLeft = function()
{
}
$rootScope.slideRight = function()
{
}
tweets.getUserStat().then(function(res)
{
console.log(res);
});
});
Twitter からデータを取得できません。助けてください。Chrome用のCORSプラグインも追加しましたが、それでも助けにはなりません。Xampp と nodejs を使用してみましたが、効果がありません。