【发布时间】:2014-08-07 05:05:39
【问题描述】:
我正在使用 ShareKit 在 Facebook 上分享一个简单的文本。我使用 cocoapods 在我的应用程序(使用 iOS7 和 XCode5)上安装 ShareKit,并按照配置教程 ConfigurationShareKit。 更具体地说,我做了以下事情:
1) 将 URL Scheme 写入 plist。
2) 创建一个 DefaultSHKConfigurator 子类:
@interface MySHKConfigurator : DefaultSHKConfigurator @结尾 @implementation MySHKConfigurator - (NSString*)facebookAppId { 返回@“xxx”; } -(NSString *)appName { 返回@“我的应用程序名称”; } - (NSArray*)facebookWritePermissions { 返回 [NSArray arrayWithObjects:@"publish_actions",@"publish_stream", nil]; //@"offline_access", } - (NSArray*)facebookReadPermissions { 返回零; // 这是 SDK 的默认值,将提供基本的读取权限 } @结尾3) 在 AppDelegate 中进行初始配置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 应用程序启动后自定义的覆盖点。 DefaultSHKConfigurator *configurator = [[MySHKConfigurator alloc] init]; [SHKConfiguration sharedInstanceWithConfigurator:configurator]; //[SHK flushOfflineQueue]; 返回是; } - (void)applicationDidBecomeActive:(UIApplication *)application { // 重新启动任何在应用程序处于非活动状态时暂停(或尚未启动)的任务。如果应用程序之前在后台,可选择刷新用户界面。 [SHKFacebook handleDidBecomeActive]; } - (void)applicationWillTerminate:(UIApplication *)application { // 当应用程序即将终止时调用。如果合适,保存数据。另请参阅 applicationDidEnterBackground:。 // 如果合适,保存数据 [SHKFacebook 处理WillTerminate]; } - (BOOL)应用程序:(UIApplication *)应用程序 openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication 注释:(id)注释 { NSString* 方案 = [url 方案]; if ([scheme hasPrefix:[NSString stringWithFormat:@"fb%@", SHKCONFIG(facebookAppId)]]) { return [SHKFacebook handleOpenURL:url]; } 返回是; }4) 在 Facebook 上分享
- (IBAction)shareFacebook:(id)sender { //- url 应该是指向您在应用商店中的应用的链接 NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; //- 在脸书上分享 SHKItem *item = [SHKItem URL:url 标题:self.textView.text contentType:SHKURLContentTypeWebpage]; [SHKFacebook shareItem:item]; }现在,我在真实设备上得到的结果是一个带有问题的 facebook 确认对话框:“您已经授权了 MyApp”。按 OK 按钮后,它会返回共享对话框。在我推送“发送到 Facebook”之后,它再次返回到 Facebook 确认对话框,上面有上述问题。这个循环永远循环。
你知道我错过了什么吗?谢谢
【问题讨论】:
-
您没有使用帐户框架的任何特殊原因?
-
账户框架是什么意思?你能告诉我更多细节吗?我只知道 ShareKit 是在多个社交网络上共享的最佳库。没有?
-
我确实花了一些时间在 ShareKit 上,所以我不想切换到另一个。因为我不知道使用 Accounts Framework,所以我没有收到同样的错误。
-
你可能也想看看 UIActivityViewController,个人不喜欢分享工具包。
-
似乎无论出于何种原因,ShareKit 都在使用 SHKFacebook,而不是现代的 SHKiOSFacebook(应该使用 Accounts.framework)。 SHKFacebook 在历史上并不完美,我现在正在重写它,我也遇到了循环错误。应该很快修复。但是,您最好使用 SHKiOSFacebook 共享器。你有自定义的 Sharers.plist 吗?这可能是 ShareKit 无法回到旧的 SHKFacebook 共享器的原因。
标签: ios objective-c facebook facebook-graph-api sharekit