oauth node.js 包
来源:互联网 发布:重复数据阴影 编辑:程序博客网 时间:2024/06/05 23:48
var express = require('express');var sys = require('util');var oauth = require('oauth');var app = express.createServer();var _twitterConsumerKey = process.env['TWITTER_CONSUMER_KEY'];var _twitterConsumerSecret = process.env['TWITTER_CONSUMER_SECRET'];console.log("_twitterConsumerKey: %s and _twitterConsumerSecret %s", process.env['TWITTER_CONSUMER_KEY'], process.env['TWITTER_CONSUMER_SECRET']);function consumer() {return new oauth.OAuth("https://twitter.com/oauth/request_token", "https://twitter.com/oauth/access_token",_twitterConsumerKey, _twitterConsumerSecret, "1.0A", "http://your.domain/sessions/callback", "HMAC-SHA1");}app.configure('development', function(){app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));app.use(express.logger());app.use(express.cookieParser());app.use(express.session({secret: "secretkey"}));});app.dynamicHelpers({session: function(req, res){return req.session;}});app.get('/', function(req, res){res.send('Hello World');});app.get('/sessions/connect', function(req, res){consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){if (error) {res.send("Error getting OAuth request token : " + sys.inspect(error), 500);} else {req.session.oauthRequestToken = oauthToken;req.session.oauthRequestTokenSecret = oauthTokenSecret;res.redirect("https://twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);}});});app.get('/sessions/callback', function(req, res){sys.puts(">>"+req.session.oauthRequestToken);sys.puts(">>"+req.session.oauthRequestTokenSecret);sys.puts(">>"+req.query.oauth_verifier);consumer().getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function(error, oauthAccessToken, oauthAccessTokenSecret, results) {if (error) {res.send("Error getting OAuth access token : " + sys.inspect(error) + "["+oauthAccessToken+"]"+ "["+oauthAccessTokenSecret+"]"+ "["+sys.inspect(results)+"]", 500);} else {req.session.oauthAccessToken = oauthAccessToken;req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;// Right here is where we would write out some nice user stuffconsumer().get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {if (error) {res.send("Error getting twitter screen name : " + sys.inspect(error), 500);} else {console.log("data is %j", data);data = JSON.parse(data);req.session.twitterScreenName = data["screen_name"];res.send('You are signed in: ' + req.session.twitterScreenName)}});}});});app.listen(parseInt(process.env.PORT || 80));
转自:https://gist.github.com/1964797
- oauth node.js 包
- cool sina oauth node.js
- Node.js 模块 包
- Node.js 模块 包
- Node.js包(JXcore)
- 《Node.js》包管理
- Node.js包(JXcore)
- node.js node包管理器--npm
- Node.js的包概述
- Node.js 模块和包
- Node.js学习(7)----包
- Node.js入门:包结构
- Node.js NPM包管理器
- Node.js NPM 包管理器
- Node.js模块和包
- Node.js包的管理
- node.js 包的概念
- node.js包的发布
- ASP.NET创建Web服务之使用事务
- 关于css3 分栏 column属性
- 水晶报表中图表形式显示CSV数据
- WPF:图像处理(二)灰度化
- 04---servlet01(servlet简介)
- oauth node.js 包
- 重构36计(7-12)
- apache 基本vhost配置
- String Operators 字符串 oracle/mssql 对比
- WPF:图像处理(三)二值化
- 重构36计(13-18)
- LoadRunner
- WPF:图像处理(四)大津法
- 04---servlet02(第一个servlet)