我在 linkedin 上有一个使用登录 api 的应用程序。这是一个使用 go 和 goth 身份验证库的网络应用程序。直到几天前,我的应用程序还可以很好地验证用户身份。现在它返回此错误消息:
linkedin 响应 404 试图获取用户信息
该应用程序已连续运行数周而未更新。所以没有任何代码更改。
我应该提一下,它确实将我带到登录页面,但在输入我的用户名和密码后,它会重定向并输出上述错误
goth oauth api 代码位于此处:https://github.com/markbates/goth/blob/master/providers/linkedin/linkedin.go
它本质上是用访问 token 调用这个 url http://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline,location:(name),picture-url,email-address)
有谁知道 api 端点是否已更改或任何其他原因导致身份验证停止工作?
我一直在查看博客,但我没有看到关于 api 的更新,而且似乎没有办法获得 linkedin 开发人员支持,因为它只指向 stackoverflow。
最佳答案
所以在深入研究这个问题之后。看来 linkedin 现在正在从他们的 api 返回 http 2.0 响应。
我通过编写一个小的 go 程序发现了这一点,该程序在我的本地机器和服务器代码所在的 aws 实例上运行。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/http/httputil"
"net/url"
)
const (
bearerToken string = "AQVJampuUSuvWs5beuCvHiJYC--"
)
func main() {
userEndpoint := "//api.linkedin.com/v1/people/~:(id,first- name,last-name,headline,location:(name),picture-url,email-address)?format=json"
client := &http.Client{}
req, err := http.NewRequest("GET", "", nil)
req.URL = &url.URL{
Scheme: "https",
Host: "api.linkedin.com",
Opaque: userEndpoint,
}
req.Header.Set("Authorization", "Bearer "+bearerToken)
resp, err := client.Do(req)
request, _ := httputil.DumpRequest(req, true)
fmt.Println("request:", string(request))
data, _ := ioutil.ReadAll(resp.Body)
response, _ := httputil.DumpResponse(resp, false)
resp.Body.Close()
fmt.Println("response:", string(response))
fmt.Println(err, req.URL.String(), string(data))
}
当在我的本地机器上运行它时,api 返回了一个带有配置文件数据的响应。当我在 aws 实例上运行它时,它返回了带有 http 2.0 header 的 404
这是在 aws 上运行该程序的输出的摘录
请求:获取 https://api.linkedin.com/v1/people/~?format=json HTTP/1.1 主办方:api.linkedin.com 授权:不记名AQVJampuUSuvWs5beu--
响应:HTTP/2.0 404 未找到 内容长度:5530 缓存控制:无存储 内容语言:en 内容类型:文本/html 日期:2017 年 2 月 18 日星期六 03:45:21 GMT X-Li-Pop:prod-lva1-h2
<!-- EF of static content included-->
<html>
<head>
<title>404: Not Found</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
/* GLOBAL */
现在我不知道这是一个错误还是预期的行为,但看起来 linkedin 在 go 启动时返回 http 2.0 响应导致 404。
我能够修复它的方法是关闭 go 本身的 http 2.0 客户端支持。通过设置如下环境变量
GODEBUG=http2client=0
此时 linkedin api 返回个人资料信息。
我很想知道这是否是 linkedin 或 go 的错误。希望 linkedin 的人可以插话。
关于go - 尝试检索个人资料信息时 linkedin 登录返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42304309/
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我最近对我的计算机(OS-MacOSX10.6.8)进行了删除,并且我正在重新安装我所有的开发工具。我再次安装了RVM;但是,它不会让我安装Ruby1.9.3。到目前为止我已经尝试过:rvminstall1.9.3rvm安装1.9.3-p194rvm安装1.9.3-p448rvminstall1.9.3--with-gcc=clang所有返回相同的命令行错误:Searchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.6/x86_64/ruby-1.9.3-p448.Continuin
我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token
我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay
我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不
我正在尝试循环哈希数组。当我到达获取枚举器开始循环的位置时,出现以下错误:undefinedmethod`[]'fornil:NilClass我的代码如下所示:defextraireAttributs(attributsParam)classeTrouvee=falsescanTrouve=falseownerOSTrouve=falseownerAppTrouve=falseresultat=Hash.new(0)attributs=Array(attributsParam)attributs.eachdo|attribut|#CRASHESHERE!!!typeAttribut=a