没有来自iOS LinkedIn SDK的回调

时间:2015-11-16 09:00:48

标签: ios objective-c sdk callback linkedin

我正在使用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。

1 个答案:

答案 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>