我正在使用LinkedIn SDK并尝试通过LinkedIn进行身份验证,但我没有收到从LinkedIn到我的应用的回调。我使用以下代码
[LISDKSessionManager createSessionWithAuth:[NSArray arrayWithObjects:LISDK_BASIC_PROFILE_PERMISSION, LISDK_EMAILADDRESS_PERMISSION, nil]
state:nil // @"some state"
showGoToAppStoreDialog:YES
successBlock:^(NSString *returnState) {}
errorBlock:^(NSError *error) {}];
我在Info.plist中使用了正确的appId
,并且我的所有捆绑包都添加到了LinkedIn开发中心。我还尝试使用不同版本的SDK。
答案 0 :(得分:1)
这可能是微不足道的,但在你的问题中,你实际上并没有在你的回调块中做任何事情,你只是传入一个空块。
在成功阻止中,检查[[LISDKSessionManager sharedInstance] session]
是否有效的用户会话。在错误块中,检查错误对象的描述并在必要时提醒用户:
[LISDKSessionManager
createSessionWithAuth:[NSArray arrayWithObjects:LISDK_BASIC_PROFILE_PERMISSION, nil]
state:nil
showGoToAppStoreDialog:YES
successBlock:^(NSString *returnState) {
NSLog(@"Success!");
LISDKSession *session = [[LISDKSessionManager sharedInstance] session];
}
errorBlock:^(LISDKAuthError *error) {
NSLog(@"Error: %@", [error localizedDescription]);
}
];
可能发生更多潜在原因:
您的app未正确设置App Transport Security。在Info.plist的NSAppTransportSecurity设置中将NSAllowsArbitraryLoads
设置为true,或将LinkedIn URL列入白名单:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>linkedin.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
还要确保将LinkedIn的网址方案列入白名单:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>linkedin</string>
<string>linkedin-sdk2</string>
<string>linkedin-sdk</string>
</array>