PHP oauth for linkedin



我正在试用linkedin中的oauth身份验证快速入门指南。我已经安装了oauth库。当我运行下面的代码时,在// ask for the pin之后没有得到任何输出。当我执行echo STDIN时,浏览器会实际呈现STDIN,而不是STDIN的值。为什么我看不到一个字段供我输入快速入门指南中链接的引脚?

这是快速入门指南中的代码。我用自己的密钥替换了API密钥。

<?php
// TODO change these to your API key and secret
define("API_CONSUMER_KEY", "xxxxxxxxxxxx");
define("API_CONSUMER_SECRET", "xxxxxxxxxxxx");
// create a new instance of the OAuth PECL extension class
$oauth = new OAuth(API_CONSUMER_KEY, API_CONSUMER_SECRET);
// get our request token
$api_url = "https://api.linkedin.com/uas/oauth/requestToken";
$rt_info = $oauth->getRequestToken($api_url);
// now set the token so we can get our access token
$oauth->setToken($rt_info["oauth_token"], $rt_info["oauth_token_secret"]);
// instruct on how to authorize the app
print("Please visit this URL:nn");
printf("https://www.linkedin.com/uas/oauth/authenticate?oauth_token=%s", $rt_info["oauth_token"]);
print("nnIn your browser and then input the numerical code you are provided here: ");
// ask for the pin  
$pin = trim(fgets(STDIN));
// get the access token now that we have the verifier pin
$at_info = $oauth->getAccessToken("https://api.linkedin.com/uas/oauth/accessToken", "", $pin);
// set the access token so we can make authenticated requests
$oauth->setToken($at_info["oauth_token"], $at_info["oauth_token_secret"]);
// do a simple query to make sure our token works
// we fetch our own profile on linkedin. This query will be explained more on later pages
$api_url = "http://api.linkedin.com/v1/people/~";
$oauth->fetch($api_url, null, OAUTH_HTTP_METHOD_GET);
// print_response is just a fancy wrapper around print and is defined later
// or you can look now and see it in the code download
print_response($oauth);

我猜您正在运行一个针对终端的PHP脚本(执行php myscript.php在终端中)。并且服务器上下文不允许从STDIN。

编写一个以$pin = "PIN I got from that URL"和其他内容开头的新PHP文件从提供的脚本,然后运行该脚本。而且,小心print_response函数,我不知道它们是什么意思:-)

在您的示例中,领英会在该网页中显示令牌。这是从中调用的波段访问,适用于不进行重定向的设备,如旧智能手机(AFAIK!)。在正常工作流程中,将其配置为重定向到回调URLmysite.com/oauth_client/authentication_success?token=TOKEN并让该URL处理其余部分。

最新更新