首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Laravel AngularJS Satellizer一起使用Twitter API

与Laravel AngularJS Satellizer一起使用Twitter API
EN

Stack Overflow用户
提问于 2015-08-26 15:46:53
回答 1查看 337关注 0票数 0

我创建了一个应用程序,通过angularjs前端和Laravel后端登录twitter,并使用Satellizer库。

现在,我想使用satellizer生成的oAuth与Twitter进行交互,是否有人有这样的建议或库呢?我已经查看过thujohn/twitter Laravel插件,但我不能让它与Satellizer玩得很好,而且它没有涵盖我想要的所有api调用(搜索tweet,回复tweet,获取用户时间表,获取配置文件)

所有的帮助都很感激!

刘易斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 12:53:23

对于处于类似情况的其他人,我发现编写自己的函数比使用第二个lib更容易。

示例路由:Route::post('tweet', ['middleware' => 'auth', 'uses' => 'TwitterController@tweet']);示例控制器函数:public function searchTweets(Request $request) { // $url = 'https://api.twitter.com/1.1/search/tweets.json'; $client = new GuzzleHttp\Client(); $user = User::find($request['user']['sub']); $profileOauth = new Oauth1([ 'consumer_key' => Config::get('app.twitter_key'), 'consumer_secret' => Config::get('app.twitter_secret'), 'token' => $user->oauthToken, 'token_secret' => $user->oauthVerifier ]); $client->getEmitter()->attach($profileOauth); $response = $client->get($url, ['auth' => 'oauth', 'query' => ['q' => $request->input('q'), 'result_type' => $request->input('result_type'), #'since_id' => $request->input('since_id', 0), #'max_id' => $request->input('max_id', 0), 'count' => $request->input('count')] ])->json(); return $response; }

这是在我的angularJS twitter工厂:var vm = {}; vm.tweets = []; vm.busy = false; vm.outreaches = 0; vm.retweets = 0; vm.favourites = 0; vm.followed = 0; vm.status = ''; vm.since_id = null; vm.until = null; vm.max_id = null; vm.count = 100; vm.q = ''; vm.result_type = 'mixed'; /* * mixed: Include both popular and real time results in the response. * recent: return only the most recent results in the response * popular: return only the most popular results in the response. */ vm.searchTweets = function () { if (vm.busy) { return; } vm.busy = true; var url = "/twitter/search"; $http({ url: url, method: "GET", params: { q: vm.q, result_type: vm.result_type || 'mixed', count: vm.count || 100, since_id: vm.since_id || null, //until: vm.until || null, max_id: vm.max_id || null } }).then(function (response) { var newTweets = response.data.statuses; console.log('newTweets: '); console.log(newTweets); for (var i = 0; i < newTweets.length; i++) { vm.tweets.push(newTweets[i]); } vm.since_id = vm.tweets[vm.tweets.length - 1].id_str; vm.busy = false; }, function (response) { // called asynchronously if an error occurs // or server returns response with an error status. console.log(response); angular.forEach(response.data.errors, function(value, key){ $window.Materialize.toast(value.message, 3000); }); }); };

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32231126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档