nodejs+passport에서 Yammer로 투고
배경.
회사의 Yammer는 마이크로소프트 플로우와 Google alert를 사용하여 투고하지만이런 비판이 끊이지 않기 때문에 nodejs의 틈을 타 하루에 몇 번씩 집중적으로 투고한다.
방법
이런 느낌. 하루에 1~2번 하는 느낌.
넣다
feedparser와 Request를 사용합니다.
이런 느낌으로 설치.
installnpm install --save feedparser request
이런 느낌으로 이루어지다.
index.jsvar FeedParser = require('feedparser'),
request = require('request');
var req= request(url);
var feedparser = new FeedParser({});
var items=[];//ここに記事が入る。
feedparser.on('meta', function(meta) {});
feedparser.on('readable', function() {
while(item = this.read()) {
items.push(item);
}
});
var out="";
feedparser.on('end', function() {
if(items.length > 0){
//ここでYammerに出す記事を生成。
items.forEach(function(item) {
out = out + item.title +"\n"+ item.link + "\n\n";
});
out=out+"#"+val.name;
console.log(val.name+">post");
}else{
console.log(val.name+">no post");
}
});
투고하다
passport,passport-yammer3,yammer를 사용합니다.
사실은 이런 느낌이야.
우선 관련된 곳을 설치하다
installnpm install --save passport-yammer3 yammer express express-session fs
access token이 나오는 곳은 이런 느낌...
yammer_index.jsvar express = require('express'),
session = require('express-session'),
passport= require('passport'),
request = require('request'),
fs = require("fs"),
YammerStrategy = require('passport-yammer3').Strategy;
var app = express();
app.use(session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new YammerStrategy({
clientID:'*****************',
clientSecret:'*****************',
callbackURL:'http://localhost:3000/auth/yammer/callback'
},
function(accessToken, refreshToken, profile, done) {
console.log(accessToken);//ここでtoken発行
fs.writeFileSync("accessToken.txt",accessToken);
return done(null, profile);
}
));
passport.serializeUser(function(user, done) {done(null, user);});
passport.deserializeUser(function(user, done) {done(null, user);});
app.all('/ng',function(req,res){res.send('ng');});
app.all('/ok',function(req,res){res.send('ok');});
app.all('/auth/yammer',passport.authenticate('yammer'));
app.all('/',function(req,res){res.send('<a href="/auth/yammer">ここクリック!</a>');});
app.all('/auth/yammer/callback',
passport.authenticate('yammer', {successRedirect: '/ok', failureRedirect: '/ng' })
);
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
위의 동작을 이동하면localhost:3000에 방문하면 이동할 것입니다.
마지막으로 투고는 이런 느낌이다.
yammer_index.jsvar Yammer = new require('yammer').Yammer;
var yammer_news_post = function(s){
var accessToken=fs.readFileSync("accessToken.txt",'utf-8');//これがアクセストークン
console.log(accessToken);
var yam = new Yammer({ access_token: accessToken });
var formdata={body:s,group_id:*********};
yam.createMessage(formdata, {},function(r1,r2){});
}
Reference
이 문제에 관하여(nodejs+passport에서 Yammer로 투고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hashito/items/6a3e358fc3e4a204676d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이런 느낌. 하루에 1~2번 하는 느낌.
넣다
feedparser와 Request를 사용합니다.
이런 느낌으로 설치.
install
npm install --save feedparser request
이런 느낌으로 이루어지다.index.js
var FeedParser = require('feedparser'),
request = require('request');
var req= request(url);
var feedparser = new FeedParser({});
var items=[];//ここに記事が入る。
feedparser.on('meta', function(meta) {});
feedparser.on('readable', function() {
while(item = this.read()) {
items.push(item);
}
});
var out="";
feedparser.on('end', function() {
if(items.length > 0){
//ここでYammerに出す記事を生成。
items.forEach(function(item) {
out = out + item.title +"\n"+ item.link + "\n\n";
});
out=out+"#"+val.name;
console.log(val.name+">post");
}else{
console.log(val.name+">no post");
}
});
투고하다
passport,passport-yammer3,yammer를 사용합니다.
사실은 이런 느낌이야.
우선 관련된 곳을 설치하다
install
npm install --save passport-yammer3 yammer express express-session fs
access token이 나오는 곳은 이런 느낌...yammer_index.js
var express = require('express'),
session = require('express-session'),
passport= require('passport'),
request = require('request'),
fs = require("fs"),
YammerStrategy = require('passport-yammer3').Strategy;
var app = express();
app.use(session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
passport.use(new YammerStrategy({
clientID:'*****************',
clientSecret:'*****************',
callbackURL:'http://localhost:3000/auth/yammer/callback'
},
function(accessToken, refreshToken, profile, done) {
console.log(accessToken);//ここでtoken発行
fs.writeFileSync("accessToken.txt",accessToken);
return done(null, profile);
}
));
passport.serializeUser(function(user, done) {done(null, user);});
passport.deserializeUser(function(user, done) {done(null, user);});
app.all('/ng',function(req,res){res.send('ng');});
app.all('/ok',function(req,res){res.send('ok');});
app.all('/auth/yammer',passport.authenticate('yammer'));
app.all('/',function(req,res){res.send('<a href="/auth/yammer">ここクリック!</a>');});
app.all('/auth/yammer/callback',
passport.authenticate('yammer', {successRedirect: '/ok', failureRedirect: '/ng' })
);
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
위의 동작을 이동하면localhost:3000에 방문하면 이동할 것입니다.마지막으로 투고는 이런 느낌이다.
yammer_index.js
var Yammer = new require('yammer').Yammer;
var yammer_news_post = function(s){
var accessToken=fs.readFileSync("accessToken.txt",'utf-8');//これがアクセストークン
console.log(accessToken);
var yam = new Yammer({ access_token: accessToken });
var formdata={body:s,group_id:*********};
yam.createMessage(formdata, {},function(r1,r2){});
}
Reference
이 문제에 관하여(nodejs+passport에서 Yammer로 투고), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hashito/items/6a3e358fc3e4a204676d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)