我刚刚使用适用于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"];
}
Run Code Online (Sandbox Code Playgroud)
但是现在新的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'
Run Code Online (Sandbox Code Playgroud)
我能做错什么?
Vol*_*ing 13
在plist文件中包含"FacebookAppID"条目就足够了.
但是,在将"FacebookAppID"字符串从文档网站复制到Xcode中的plist文件后,我遇到了同样的问题.从plist文件中删除"FacebookAppID"条目并通过实际输入后重新输入它,它工作了!
因此,当将HTML文件中的字符串"FacebookAppID"复制/粘贴到plist文件时,也会复制一些不可见的标记或者字符编码搞砸了.
小智 6
只是为了抬头.我今天遇到了这个问题,最后我只是注意到我只是将条目放在错误的.plist文件中.
如果您过滤项目文件(向下),请键入.plist,您可能会看到两个文件.一个是测试',另一个是你实际需要设置的.祝好运!
我仍然不确定为什么会发生这种情况,但我的解决方法是检查FBSession对象是否有APP_ID,如果没有,则手动设置:
if (![FBSession defaultAppID]) {
[FBSession setDefaultAppID:FB_APP_ID];
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人!
@Kwame我遇到了同样的问题,你的会话对象缺少应用程序id。为此,您可以在 info.plist 中添加一个名为 FacebookAppID 的键,并使用 facebook 提供给您的 iOS 应用程序的应用程序 ID 设置适当的值。或者,如果您已经这样做了,您可以通过在方法中设置适当的值以编程方式设置应用程序 ID - (id)initWithAppID:(NSString*)appID
permissions:(NSArray*)permissions
urlSchemeSuffix:(NSString*)urlSchemeSuffix
tokenCacheStrategy:(FBSessionTokenCachingStrategy*)tokenCachingStrategy;。另请交叉检查 info.plist 中应用程序 ID 的值。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
9192 次 |
| 最近记录: |