i实现linkedIn注册到我的Android应用...我使用LinkedIn Android SDK:链接和我遵循这些教程:tut但是我遇到了一个大问题。我成功地通过方法获得令牌:
LISessionManager.getInstance(getContext()).init(mLoginActivity, buildScope(), new AuthListener() {
之后,我尝试提出apihelper请求以获取配置文件数据:
APIHelper apiHelper = APIHelper.getInstance(getContext());
apiHelper.getRequest(mLoginActivity, topCardUrl, new ApiListener() {
@Override
public void onApiSuccess(ApiResponse s) {
但是,每次我尝试获取个人资料数据时,我都会得到以下结果:
异常:未设置访问toke
我该如何修复?我不明白哪里有问题。请帮助。
LinkedIn当前停止对移动SDK的支持,这就是为什么所有人都没有设置访问令牌的原因。
有关更多信息https://engineering.linkedin.com/blog/2018/12/developer-program-updates
通过此https://stackoverflow.com/a/22219383
public void login(){
LISessionManager.getInstance(getActivity()).init(getActivity(),
buildScope(), new AuthListener()
{
@Override
public void onAuthSuccess()
{
progress.show();
getUserData();
}
@Override
public void onAuthError(LIAuthError error) {
if(progress.isShowing())
progress.dismiss();
}
}, false);
}
private static Scope buildScope() {
return Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS);
}
String u="https://api.linkedin.com/v1/people/~:(id,first-name,last- name,headline,picture-url,public_profile_url,industry,summary,specialties,picture-urls::(original),positions:(id,title,summary,start-date,end-date,is-current,company:(id,name,type,size,industry,ticker)),educations:(id,school-name,field-of-study,start-date,end-date,degree,activities,notes),associations,interests,num-recommenders,date-of-birth,publications:(id,title,publisher:(name),authors:(id,name),date,url,summary),patents:(id,title,summary,number,status:(id,name),office:(name),inventors:(id,name),date,url),languages:(id,language:(name),proficiency:(level,name)),skills:(id,skill:(name)),certifications:(id,name,authority:(name),number,start-date,end-date),courses:(id,name,number),recommendations-received:(id,recommendation-type,recommendation-text,recommender),honors-awards,three-current-positions,three-past-positions,volunteer)";
public void getUserData()
{
APIHelper apiHelper = APIHelper.getInstance(getActivity());
apiHelper.getRequest(getActivity(), u, new ApiListener() {
@Override
public void onApiSuccess(ApiResponse result) {
try {
//progress.dismiss();
socialData = new SocialLoginBean();
JSONObject json = result.getResponseDataAsJson();
String fname = json.getString("firstName");
String lname = json.getString("lastName");
socialData.setFname(fname);
socialData.setLname(lname);
JSONObject pic = json.getJSONObject("pictureUrls");
JSONArray picarr = pic.getJSONArray("values");
profile_pic = picarr.getString(0);
socialData.setPictureUrl(profile_pic);
JSONObject obj = json.getJSONObject("positions").getJSONArray("values").getJSONObject(0);
JSONObject positions = obj.getJSONObject("company");
String companyDesc="",companyName="",industry="",jobTitle="";
if(obj.has("title"))
jobTitle = obj.getString("title");
if(obj.has("summary"))
companyDesc = obj.getString("summary");
if(positions.has("name"))
companyName = positions.getString("name");
if(json.has("industry"))
industry = json.getString("industry");
String publicProfileUrl = json.getString("publicProfileUrl");
socialData.setProfileUrl(publicProfileUrl);
socialData.setIndustry(industry);
socialData.setCompany(companyName);
socialData.setDesignation(jobTitle);
socialData.setCompanyDescription(companyDesc);
moveTo(socialData);
} catch (Exception e) {
e.printStackTrace();
if(progress.isShowing())
progress.dismiss();
moveTo(socialData);
}
}
@Override
public void onApiError(LIApiError error) {
if(progress.isShowing())
progress.dismiss();
}
});
}