是否保证您的公共API返回的电子邮件地址已经过验证?email-address可通过r_emailaddress会员权限访问:https://developer.linkedin.com/docs/fields/basic-profile.
一切顺利,直到今天我收到来自LinkedIn的电子邮件,表明一些重大的API变化.随后我在通过身份验证用户时看到了例外情况.LinkedIn.
以下是日志的例外情况
OAuth::Problem (Scope NOT_AUTHORIZED : r_fullprofile):
oauth (0.4.7) lib/oauth/consumer.rb:178:in `request'
oauth (0.4.7) lib/oauth/consumer.rb:194:in `token_request'
oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
Run Code Online (Sandbox Code Playgroud)
用于获取请求令牌的OAuth逻辑.
consumer = OAuth::Consumer.new(LINKED_IN_API_KEY, LINKED_IN_SECRET_KEY,
{
:site => "https://api.linkedin.com",
:scheme => :header,
:http_method => :post,
:request_token_path => "/uas/oauth/requestToken?scope=r_fullprofile",
:access_token_path => "/uas/oauth/accessToken",
:authorizeEmapath => "/uas/oauth/authorize"
})
### Exception occurs at this call.
request_token = consumer.get_request_token(:oauth_callback => callback_url)
Run Code Online (Sandbox Code Playgroud)
来自LinkedIn的电子邮件

我的分析到现在为止
如果我将范围更改为r_basicprofile它工作正常但我没有获得skills经过身份验证的linkedin用户的信息.
为了满足API更改,我需要做些什么其他更改?
不确定这是否与最近收紧的LinkedIn api相关(也许不是正确的Stack位置发布这个),但是当我从我的服务器使用LinkedIn时,我有一个奇怪的错误.
我知道他们真的锁定了"网络刮刀"(我没有对他们的网站做过).我的网站所做的只是让您点击名称并执行谷歌搜索.
点击John Doe who works for Acme Corp重定向到Google,搜索"John Doe Acme Corp LinkedIn",通常会在第一个结果中提供正确的用户个人资料.好哇!
但是,当我点击该结果时,我会收到一个错误页面.事实上,当我点击任何LinkedIn Google搜索结果时(即使我有机地谷歌)我被重定向到"找不到页面"的结果.
所有错误页面都包含/uas/login?trk=sentinel_org_block在其中.
知道这里发生了什么吗?肯定LinkedIn并没有阻止我只是谷歌搜索人?
我正在尝试使用新的ugc端点在linkedin上创建视频发布
创建此类帖子有两个步骤
1)。将视频资产上传到linkedin服务器上(完成)
2)。向带有请求主体的ugc端点发出请求
我已经成功上传了视频,但收到ugc发布请求的身份验证错误。错误是
{
"message": "urn:li:developerApplication:<id1> does not have permission to create ugc posts with author: li:member:<id2>",
"status": 401
}
Run Code Online (Sandbox Code Playgroud)
我正在按照linkedin api文档中的建议传递请求正文。
{
"author": "urn:li:person:<id>",
"lifecycleState": "PUBLISHED",
"specificContent": {
"com.linkedin.ugc.ShareContent": {
"media": [
{
"title": {
"attributes": [],
"text": "Sample Video Create"
},
"description": {
"attributes": [],
"text": "Sample Description"
},
"media": "urn:li:digitalmediaAsset:<asset_id>",
"thumbnails": [],
"status": "READY"
}
],
"shareCommentary": {
"attributes": [],
"text": "Some share text"
},
"shareMediaCategory": "VIDEO"
}
},
"visibility": {
"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
},
"targetAudience": …Run Code Online (Sandbox Code Playgroud) 我正在为公司建立我们的外部网站,我想在我们的网站上显示我们公司的LinkedIn个人资料的最新更新.目前,当我访问我们公司的LinkedIn个人资料时,我可以看到最近的更新,这些更新也可供公众用户使用(因此用户无需登录Linkedin查看这些最新更新),如下所示: -
所以我有以下两个问题
现在我读到LinkedIn JavaScript API及其提供的功能,我已经创建了一个新的LinkedIn应用程序,并设置了此链接中提到的所需设置https://developer.linkedin.com/docs/getting-started- js-sdk但我对如何使用它以及如何管理身份验证感到困惑.所以我有以下两个主要问题: -
问题1.任何人都可以链接我一些关于使用LinkedIn JavaScript SDK获取我们公司最新更新的示例代码?
问题2.LinkedIn JavaScript SDK的身份验证如何真正起作用?我的意思是SDK是否允许获取我们的LinkedIn公司简介的最新更新而无需用户提前登录LinkedIn?再次访问我们的LinkedIn个人资料页面的任何用户都可以查看我们公司的最新更新(用户无需登录链接以查看我们的个人资料和我们的最新更新)..并且因为我们计划在我们的内部显示最近的更新外部网站,所以我们不能假设任何将查看我们网站的用户已经登录LinkedIn查看那些LinkedIn最近更新,或者用户首先拥有一个LinkedIn帐户..
那么有人可以就我的上述2个问题提出建议吗 在此先感谢您的帮助.
编辑
根据我从@Craig Wayne得到的回复.现在在我的情况下,我没有设置任何关于OAuth的事情,因为我只为JavaScript配置了所需的步骤,所以这很好吗?: -

现在我尝试使用此链接https://codepen.io/craigiswayne/pen/KGbqRq测试Api呼叫,我在其中输入以下信息: -
客户端ID: - "我输入客户端ID 14位"REST URL: - "companies/<>/updates?start = 20&count = 10&format = json"
但它一直试图加载结果,如下: -
现在我们的sharepoint页面中的最后一步我添加了以下代码: -
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: 14 digits code
onLoad: LinkedINJSAPI.onLoad
authorize: true
credentials_cookie: true
credentials_cookie_crc: true
</script>
<script>
var LinkedINJSAPI = {
onLoad: function(){
IN.User.authorize(LinkedINJSAPI.request, this );
},
request: function(){
var url …Run Code Online (Sandbox Code Playgroud) 我正在使用 selenium chrome 驱动程序来刮擦 Linkedin 的个人资料。我正在为我的帖子进行分析。这是从 Linkedin 的帖子中以“dd.mm.yyyy”格式而不是“1 个月前”、“2 周前”格式获取确切日期的方法吗?
请帮忙,雅切克
我正在使用LinkedIn API从那里提取更新并在网站上显示.在使用OAuth时,我将令牌存储在一个文件中,然后再从那里拉出它以防止登录弹出.但是,一旦我的令牌到期,我不清楚它将如何刷新.以下是我如何从文件中读取令牌 -
$config = json_decode(file_get_contents(".service.dat"));
if( isset($config->key) && isset($config->secret) ) {
$this->access_token = new OAuthConsumer($config->key, $config->secret);
}
Run Code Online (Sandbox Code Playgroud)
对于身份验证,我有以下来获取请求令牌 -
function getRequestToken()
{
$consumer = $this->consumer;
$request = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $this->request_token_path);
$request->set_parameter("oauth_callback", $this->oauth_callback);
$request->sign_request($this->signature_method, $consumer, NULL);
$headers = Array();
$url = $request->to_url();
$response = $this->httpRequest($url, $headers, "GET");
parse_str($response, $response_params);
$this->request_token = new OAuthConsumer($response_params['oauth_token'], $response_params['oauth_token_secret'], 1);
}
Run Code Online (Sandbox Code Playgroud)
生成令牌后,我正在创建授权网址:
function generateAuthorizeUrl()
{
$consumer = $this->consumer;
$request_token = $this->request_token;
return $this->authorize_path . "?oauth_token=" . $request_token->key;
}
Run Code Online (Sandbox Code Playgroud)
LinkedIn文档说明了关于刷新令牌:
刷新访问令牌非常简单,并且可以在没有为用户显示授权对话框的情况下发生.换句话说,它是一个无缝的过程,不会影响您的应用程序的用户体验.只需让您的应用程序通过授权流程,即可获取额外60天使用寿命的新访问令牌.
我不清楚这意味着什么.如果我必须再次从获取请求令牌重做,那么是否需要我再次发出http请求并且必须弹出登录屏幕?我该如何避免呢?将赞赏建议.
谢谢.
我想补充一下LinkedIn登录我项目的可能性.我按照LinkedIn开发者页面上给出的教程进行了操作,最后得到了以下代码,这些教程中非常基本的东西:
<!-- linkedin login -->
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: [MY_API_KEY] {~n}
authorize: false {~n}
onLoad: onLinkedInLoad {~n}
</script>
<!-- linkedin login play -->
<script type="text/javascript">
// Setup an event listener to make an API call once auth is complete
function onLinkedInLoad() {
IN.Event.on(IN, "auth", getProfileData);
}
// Handle the successful return from the API call
function onSuccess(data) {
console.log(data);
}
// Handle an error response from the API call
function onError(error) {
console.log(error);
}
// Use the API …Run Code Online (Sandbox Code Playgroud) 如何验证LinkedIn访问令牌?
我需要检查访问令牌是否有效?
例如:在Facebook上
https://graph.facebook.com/me?access_token=access_token
Run Code Online (Sandbox Code Playgroud)
在LinkedIn中有类似的方法吗?
在获取用户的公司列表时,它会为没有徽标的公司抛出500个错误代码.
使用logo-url param进行查询:
{"errorCode":0,"message":"内部API服务器错误",
"requestId":"xyz","status":500,"timestamp":1522908224279}
没有logo-url param的查询:
{"_ count":1,"_ start":2,"_ total":8,"values":[{"id":123456,"name":"Cross Talk","numFollowers":0,"universalName": "串话"}]}
谁能帮忙解决这个问题?
linkedin-api ×10
linkedin ×7
oauth ×2
javascript ×1
oauth-2.0 ×1
php ×1
selenium ×1
web-scraping ×1