- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在身份验证后从 linkedin 用户获取电子邮件地址,现在我正在获取基本配置文件但没有获取电子邮件地址。
我正在使用 http://code.google.com/p/linkedin-j/downloads/list用于身份验证的 jar 文件。
我已经仔细阅读了这份文件,但对我来说还没有完全使用http://oodlestechnologies.com/blogs/recent-changes-in-linkedin-api .
jar 文件属性的代码如下:-
# API URLs
##########
# Profile API
com.google.code.linkedinapi.client.getProfileForCurrentUser=http://api.linkedin.com/v1/people/~{profileFields}
com.google.code.linkedinapi.client.getProfileById=http://api.linkedin.com/v1/people/id={id}{profileType}{profileFields}
com.google.code.linkedinapi.client.getProfileByUrl=http://api.linkedin.com/v1/people/url={url}{profileType}{profileFields}
#OAuth URLs
###########
com.google.code.linkedinapi.client.oauth.requestToken=https://api.linkedin.com/uas/oauth/requestToken
com.google.code.linkedinapi.client.oauth.accessToken=https://api.linkedin.com/uas/oauth/accessToken
com.google.code.linkedinapi.client.oauth.authorize=https://www.linkedin.com/uas/oauth/authorize
com.google.code.linkedinapi.client.oauth.invalidateToken=https://api.linkedin.com/uas/oauth/invalidateToken
当我更改上面的任何内容并创建 jar 时,它会显示错误。
现在我展示了我的代码:-
void startAutheniticate() {
System.out.println("OAUTH_CALLBACK_URL " + OAUTH_CALLBACK_URL);
final LinkedInRequestToken liToken = oAuthService
.getOAuthRequestToken(OAUTH_CALLBACK_URL);
final String uri = liToken.getAuthorizationUrl();
getSharedPreferences(OAUTH_PREF, MODE_PRIVATE).edit()
.putString(PREF_REQTOKENSECRET, liToken.getTokenSecret())
.commit();
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(i);
}
void finishAuthenticate(final Uri uri) {
if (uri != null && uri.getScheme().equals(OAUTH_CALLBACK_SCHEME)) {
final String problem = uri.getQueryParameter(OAUTH_QUERY_PROBLEM);
if (problem == null) {
final SharedPreferences pref = getSharedPreferences(OAUTH_PREF,
MODE_PRIVATE);
final LinkedInAccessToken accessToken = oAuthService
.getOAuthAccessToken(
new LinkedInRequestToken(uri
.getQueryParameter(OAUTH_QUERY_TOKEN),
pref.getString(PREF_REQTOKENSECRET,
null)),
uri.getQueryParameter(OAUTH_QUERY_VERIFIER));
pref.edit()
.putString(PREF_TOKEN, accessToken.getToken())
.putString(PREF_TOKENSECRET,
accessToken.getTokenSecret())
.remove(PREF_REQTOKENSECRET).commit();
showCurrentUser(accessToken);
} else {
Toast.makeText(this,
"Appliaction down due OAuth problem: " + problem,
Toast.LENGTH_LONG).show();
finish();
}
}
}
void clearTokens() {
getSharedPreferences(OAUTH_PREF, MODE_PRIVATE).edit()
.remove(PREF_TOKEN).remove(PREF_TOKENSECRET)
.remove(PREF_REQTOKENSECRET).commit();
}
void showCurrentUser(final LinkedInAccessToken accessToken) {
final LinkedInApiClient client = factory
.createLinkedInApiClient(accessToken);
try {
final Person profile = client.getProfileForCurrentUser(EnumSet.of(
ProfileField.ID, ProfileField.FIRST_NAME,
ProfileField.LAST_NAME, ProfileField.HEADLINE,
ProfileField.INDUSTRY, ProfileField.PICTURE_URL,
ProfileField.DATE_OF_BIRTH, ProfileField.LOCATION_NAME,
ProfileField.MAIN_ADDRESS, ProfileField.LOCATION_COUNTRY
));
// /////////////////////////////////////////////////////////
// here you can do client API calls ...
// client.postComment(arg0, arg1);
// client.updateCurrentStatus(arg0);
// or any other API call (this sample only check for current user
// and shows it in TextView)
// /////////////////////////////////////////////////////////
System.out.println("p => " + profile);
System.out.println("PersonID : " + profile.getId());
System.out.println("Name : " + profile.getFirstName() + " "
+ profile.getLastName());
System.out.println("Headline : " + profile.getHeadline());
System.out.println("Industry : " + profile.getIndustry());
System.out.println("Picture : " + profile.getPictureUrl());
DateOfBirth dateOfBirth = profile.getDateOfBirth();
System.out.println("DateOfBirth : " + dateOfBirth.getDay() + "/"
+ dateOfBirth.getMonth() + "/" + dateOfBirth.getYear());
System.out.println("MAin Address : " + profile.getMainAddress());
Location location = profile.getLocation();
System.out.println("Location:" + location.getName() + " - "
+ location.getCountry().getCode());
// get_from_last
Toast.makeText(LITestActivity.this, "Wait...", Toast.LENGTH_LONG).show();
startActivity(new Intent(LITestActivity.this,
UserProfileScreen.class)
.putExtra("get_from_last", "1")
.putExtra("getId", profile.getId())
.putExtra("getEmail", "email@add.com")
.putExtra("getFirstName", profile.getFirstName())
.putExtra("getLastName", profile.getLastName())
.putExtra("getHeadline", profile.getHeadline())
.putExtra("getPictureUrl", profile.getPictureUrl())
.putExtra(
"dob",
dateOfBirth.getDay() + "/" + dateOfBirth.getMonth()
+ "/" + dateOfBirth.getYear()));
finish();
} catch (LinkedInApiClientException ex) {
clearTokens();
Toast.makeText(
this,
"Appliaction down due LinkedInApiClientException: "
+ ex.getMessage()
+ " Authokens cleared - try run application again.",
Toast.LENGTH_LONG).show();
pd.dismiss();
finish();
}
}
int i = 0;
public void onNewIntent(Uri intent) {
if (i == 0) {
i++;
finishAuthenticate(intent);
} else {
i++;
}
System.out.println("i => " + i);
}
但我不知道如何获取电子邮件地址所以任何人都可以帮助我
最佳答案
尽管这是一个老问题,但我认为它值得回答。我努力寻找一种方法来使用 linkedin-j-android 库从 linkedin 获取用户电子邮件地址。不幸的是我找不到任何现成的解决方案,所以我对库源进行了更改并将其重新打包以在我的应用程序中使用。您可以从此链接下载该库: https://dl.dropboxusercontent.com/u/46373731/linkedin-j-android.jar
您可以使用 ProfileField.EMAIL_ADDRESS 获取电子邮件地址。
关于android - 没有从 linkedin 获取电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16710194/
我需要您在以下方面提供帮助。近一个月来,我一直在阅读有关任务和异步的内容。 我想尝试在一个简单的 wep api 项目中实现我新获得的知识。我有以下方法,并且它们都按预期工作: public Htt
我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用
我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 Javascript 中的继承很有用。 在这个例子中... define([], function () { "use
影响我性能的前三项操作是: 获取滚动条 获取偏移高度 Ext.getStyle 为了解释我的应用程序中发生了什么:我有一个网格,其中有一列在每个单元格中呈现网格。当我几乎对网格的内容做任何事情时,它运
我正在使用以下函数来获取 URL 参数。 function gup(name, url) { name = name.replace(/[\[]/, '\\\[').replace(/[\]]/,
我最近一直在使用 sysctl 来做很多事情,现在我使用 HW_MACHINE_ARCH 变量。我正在使用以下代码。请注意,当我尝试获取其他变量 HW_MACHINE 时,此代码可以完美运行。我还认为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试过的解决方案、为什么
由于使用 main-bower-files 作为使用 Gulp 的编译任务的一部分,我无法使用 node_modules 中的 webpack 来require 模块code> dir 因为我会弄乱当
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我使用 Gridlayout 在一行中放置 4 个元素。首先,我有一个 JPanel,一切正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我的 JPanel 上添加了一个 J
由于以下原因,我想将 VolumeId 的值保存在变量中: #!/usr/bin/env python import boto3 import json import argparse import
我正在将 MSAL 版本 1.x 更新为 MSAL-browser 的 Angular 。所以我正在尝试从版本 1.x 迁移到 2.X.I 能够成功替换代码并且工作正常。但是我遇到了 acquireT
我知道有很多关于此的问题,例如 Getting daily averages with pandas和 How get monthly mean in pandas using groupby但我遇到
This is the query string that I am receiving in URL. Output url: /demo/analysis/test?startDate=Sat+
我正在尝试使用 javascript 中的以下代码访问 Geoserver 层 var gkvrtWmsSource =new ol.source.ImageWMS({ u
API 需要一个包含授权代码的 header 。这就是我到目前为止所拥有的: var fullUrl = 'https://api.ecobee.com/1/thermostat?json=\{"s
如何获取文件中的最后一个字符,如果是某个字符,则删除它而不将整个文件加载到内存中? 这就是我目前所拥有的。 using (var fileStream = new FileStream("file.t
我是这个社区的新手,想出了我的第一个问题。 我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。
在回答 StoreStore reordering happens when compiling C++ for x86 @Peter Cordes 写过 For Acquire/Release se
我有一个函数,我们将其命名为 X1,它返回变量 Y。该函数在操作 .on("focusout", X1) 中使用。如何获取变量Y?执行.on后X1的结果? 最佳答案 您可以更改 Y 的范围以使其位于函
我是一名优秀的程序员,十分优秀!