【问题标题】:Trying to connect to LinkedIn API with Node.js Express尝试使用 Node.js Express 连接到 LinkedIn API
【发布时间】:2014-09-18 20:12:47
【问题描述】:

我在连接到Linkedin 和从中提取连接时遇到问题。我必须使用nodejsexpress,并且正在使用linkedin-js 客户端(https://github.com/masylum/linkedin-js)。我到处寻找示例,但仍然不太了解如何进行“获取”调用并在页面上显示用户连接。当我使用“render”时出现错误,但是当我尝试使用“send”时,我发现 API 调用无论如何都不起作用。任何人的帮助和解释将不胜感激!这是我目前所拥有的。

var express = require('express')
, linkedin_client = require('linkedin-js')('xxx', 'xxx', 'http://localhost:3003/')
, app = express();

app.configure(function(){

app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.static(__dirname + '/'));
app.use(express.cookieParser());
app.use(express.session({ secret: "string" }));  
});
app.get('/', function (req, res) {
// the first time will redirect to linkedin
 linkedin_client.getAccessToken(req, res, function (error, token) {
// will enter here when coming back from linkedin
req.session.token = token;


 linkedin_client.apiCall('GET', '/people/~/connections:(headline,first-name,last-name)',
{
  token: {
    oauth_token_secret: req.session.token.oauth_token_secret
  , oauth_token: req.session.token.oauth_token
  }
, fields: req.param('id')//not sure?
}
, function (error, result) {
  res.send('message_sent');
}
);
//res.render('auth');  I'm getting an error here as well
});
});



app.post('/message', function (req, res) {
linkedin_client.apiCall('POST', '/people/~/shares',
{
  token: {
    oauth_token_secret: req.session.token.oauth_token_secret
  , oauth_token: req.session.token.oauth_token
  }
, share: {
    comment: req.param('message')
  , visibility: {code: 'anyone'}
  }
}
, function (error, result) {
  res.render('message_sent');
}
);
});





app.listen(3003);
console.log("Listening");

【问题讨论】:

  • 我很想知道您的最终实现是什么。你介意分享吗?我意识到 SailsJS 已经更新了一点,所以如果你将 LinkedIn API 实现到最新版本中,那就更好了。

标签: javascript api node.js linkedin


【解决方案1】:

在第二行将“API Key”和“Secret Key”替换为来自https://www.linkedin.com/secure/developer 的您自己的“密钥”:

var express = require('express'),
    linkedin_client = require('linkedin-js')('API Key', 'Secret Key', 'http://localhost:3003/'),
    bodyParser = require('body-parser'),
    cookieParser = require('cookie-parser'),
    methodOverride = require('method-override'),
    session = require('express-session'),
    app = express();

app.use(bodyParser.json()); //basic app set up
app.use(bodyParser.urlencoded({extended: true}));
app.use(methodOverride());
app.use(express.static(__dirname + '/'));
app.use(cookieParser());
app.use(session({secret: 'secret',
    saveUninitialized: true,
    resave: true})); //session stuff
app.get('/', function (req, res) {
// the first time will redirect to linkedin
linkedin_client.getAccessToken(req, res, function (error, token) {
// will enter here when coming back from linkedin
req.session.token = token;

linkedin_client.apiCall('GET', '/people/~/connections:(headline,first-name,last-name)',
{
  token: {
    oauth_token_secret: req.session.token.oauth_token_secret
  , oauth_token: req.session.token.oauth_token
  }
, fields: req.param('id')//not sure?
}
, function (error, result) {
  res.send(result);
}
);

});
});

app.post('/message', function (req, res) {
linkedin_client.apiCall('POST', '/people/~/shares',
{
  token: {
    oauth_token_secret: req.session.token.oauth_token_secret
  , oauth_token: req.session.token.oauth_token
  }
, share: {
    comment: req.param('message')
  , visibility: {code: 'anyone'}
  }
}
, function (error, result) {
  res.render('message_sent');
}
);
});

app.listen(3003);
console.log("Listening");

【讨论】:

    猜你喜欢
    • 2012-10-17
    • 2021-09-05
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多