我也在寻找一种方法来做到这一点。您需要扩展 LinkedIn Developer Toolkit。
下载源
将以下函数重载添加到WebOAuthAuthorization.cs
public void BeginAuthorize(Uri callback, IDictionary<string, string> requestParameters)
{
this.Consumer.Channel.Send(this.Consumer.PrepareRequestUserAuthorization(callback, requestParameters, null));
}
编译它并在您的项目中添加对它的引用(如果您正在使用它,请删除 NuGet 包)。然后您就可以从您的代码中调用它,如下所示:
WebOAuthAuthentication webAuth = new WebOAuthAuthentication(LinkedInTokenManager, null);
Uri callback = new Uri("http://your.callback.uri");
Dictionary<string, string> requestParameters = new Dictionary<string, string>();
requestParameters.Add("scope", "r_fullprofile r_network");
webAuth.BeginAuthorize(callback, requestParameters);
至于您的第二个问题,配置文件字段 ENUM 用于传递给GetCurrentUser
方法(可能还有其他方法)以指定要返回的字段,例如
LinkedInService li = new LinkedInService(webAuth);
List<ProfileField> fields = new List<ProfileField>();
fields.Add(ProfileField.ThreeCurrentPositions);
fields.Add(ProfileField.Industry);
Person person = li.GetCurrentUser(ProfileType.Standard, fields);
然后可以在Person
对象上访问这些字段(您未指定的字段为空)。