'FBSession:没有提供AppID

时间:2012-09-17 16:34:21

标签: facebook-ios-sdk

我刚刚使用适用于iOS的新Facebook 3.0 SDK更新了我的应用。在此之前,我使用的是使用FBSessionDelegate和FBRequestDelegate的SDK。在该SDK中,我们必须将此代码放在applicationDidFinishLaunching:

 facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:self];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) {
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
} 

然而现在使用新的3.0 SDK,我被告知我们所要做的就是导入框架和资源包,然后“将名为FacebookAppID的id添加到包* .plist”所以我已经这样做了,但当我在其中调用任何带有FBSession的代码时,我收到此错误:

 'FBSession: No AppID provided; either pass an AppID to init, or add a string valued key with the appropriate id named FacebookAppID to the bundle *.plist'

我可能做错了什么?

8 个答案:

答案 0 :(得分:13)

在plist文件中输入“FacebookAppID”就足够了。

但是,在将“FacebookAppID”字符串从文档网站复制到Xcode中的plist文件后,我遇到了同样的问题。 从plist文件中删除“FacebookAppID”条目并通过实际输入重新输入后,它就有效了!

因此,当将HTML文件中的字符串“FacebookAppID”复制/粘贴到plist文件时,也会复制一些不可见的标记,或者字符编码搞砸了。

答案 1 :(得分:6)

只是为了抬头。我今天遇到了这个问题,最后我只是注意到我只是将条目放在错误的.plist文件中。 如果您过滤项目文件(在左侧),请键入 .plist ,您可能会看到两个文件。一个是测试'另一个是你真正需要设置的那个。 祝你好运!

答案 2 :(得分:5)

我仍然不确定为什么会这样,但我的解决方法是检查FBSession对象是否有APP_ID,如果没有,则手动设置:

if (![FBSession defaultAppID]) {
    [FBSession setDefaultAppID:FB_APP_ID];
}

希望这有助于某人!

答案 3 :(得分:5)

在我的情况下,我愚蠢地用小写'd'键入FacebookAppId。只是把它拿出去以防有人遇到同样的问题。

答案 4 :(得分:3)

@kwame我遇到了同样的问题,你的会话对象缺少App id。为此,您可以在名为FacebookAppID的info.plist中添加一个键,并使用facebook提供给您的ios应用程序的应用程序ID设置适当的值。或者如果你已经这样做了,你可以通过在- (id)initWithAppID:(NSString*)appID permissions:(NSArray*)permissions urlSchemeSuffix:(NSString*)urlSchemeSuffix tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy;方法中设置适当的值来以编程方式设置app id。另请在info.plist中交叉检查app id的值。希望这可以帮助。

答案 5 :(得分:2)

您可以在此处犯的另一个错误是使用快速搜索来搜索“plist”而不会注意到您正在将App ID添加到错误的plist文件中。如果您已经包含了像Google Maps SDK这样的框架,那么它就有自己的plist文件。

答案 6 :(得分:0)

AppDelegate.swift

import FBSDKCoreKit
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
    FBSDKSettings.setAppID("FacebookAppID")

    return true
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options) {
    return true
}

return true
}

答案 7 :(得分:-1)

除了之前的答案之外:即使您发现将FacebookAppID添加到错误的 * .plist文件中并且仍然遇到相同的错误,请再次检查 。可能是您将其替换为另一个错误* .plist