与 iOS 6.0 原生 Facebook 集成共享:“通过我的应用程序名称发布”?

2024-02-25

我刚刚通过 ios 6 将 facebook 集成到我的应用程序中,但在墙上发帖时遇到问题。它只是说“通过 ios 应用程序发布”。我想让它说“通过应用程序名称发布”。我已经使用 Facebook 创建了应用程序身份,并且拥有他们分配的应用程序编号,但我不确定如何将其与 Facebook 集成集成。

下面是我的代码。如果有人可以提供帮助,我们将不胜感激。谢谢!

{
NSString *message;
message= [[NSString alloc] initWithFormat:@"I've earned %@ points", [self retrieveScore]];

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [controller setInitialText:message];
    [controller addURL:[NSURL URLWithString:@"http://mysite"]];
    [self presentViewController:controller animated:YES completion:Nil];
    [message release];

    SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
        NSString *output= nil;
        switch (result) {
            case SLComposeViewControllerResultCancelled:
                output= @"Action Cancelled";
                NSLog (@"cancelled");
                break;
            case SLComposeViewControllerResultDone:
                output= @"Post Succesfull";
                NSLog (@"success");
                break;
            default:
                break;
        }
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];
        [alert release];
        [controller dismissViewControllerAnimated:YES completion:Nil];
    };
    controller.completionHandler =myBlock;
      }

更新-可以做到

So the 应用程序能够共享到 Facebook,而无需使用帐户框架来获取用户权限......他们使用UIActivityViewController并且帖子显示为“via Digg”,我联系了 Digg 的某人,他们告诉我这是一个手动过程,您必须在 Apple App Store 中发布您的 iOS 应用程序,并且还必须在 Facebook 中接受并发布您的 Facebook 应用程序应用商店。 然后Facebook可以通过这种方式手动处理两者的链接。

这样做的明显缺点是UIActivityViewController意味着您可以在不与 Facebook 集成的情况下从您的应用程序进行共享,无需 Facebook 应用程序...但是要“通过您的应用程序名称”获得,您将需要一个 Facebook 应用程序,一旦一切完成,Facebook 将批准该应用程序进入他们自己的应用程序商店已上线,您需要联系开发者关系部门将其全部链接起来。

请注意,我的其余答案(我之前的答案)是正确的,解决方案是 Facebook 可以为您执行的手动过程,您的 iOS 代码不应受到影响。


以前的答案和解决方法

您想要的原生 Facebook 集成实际上是 Composer 视图控制器。这是通过使用SLComposeViewController具有服务类型的类SLServiceTypeFacebook.

此类仅提供单向通信,正如您所注意到的,您是通过点击“发布”按钮确认任何墙贴的人。该视图控制器属于 iOS 系统,而不是您的应用程序。通过与这个组合视图控制器交互,您实际上绕过了您的应用程序。

用户喜欢这样做,因为这可以给他们带来安全感。

除非您的应用程序仅通过更深入的双向 Facebook 集成来运行,否则您应该使用SLComposeViewController(更深入的集成意味着您的应用程序需要您的朋友列表或现有的墙贴、相册等...)。

为了使源自您的应用程序的帖子在 Facebook 上显示为“via xxxx”而不是“via iOS”,您需要通过以下方式与 Facebook 进行交互:SLRequest班级。为了做到这一点,您还必须与Account.framework此外Social.framework.

在设置方面,它类似于以前使用的(并且仍然可以使用)之前的 Facebook iOS SDK,您可以获得设备帐户存储的引用,您请求 Facebook 帐户并发送您的 Facebook 应用程序 ID 和一系列权限。

如果获得许可,您可以通过以下方式与 Facebook Graph API 进行交互:SLRequest班级。通过在这个庄园的墙上张贴,您将获得所需的“via xxx”。

要使用此功能,请查看SLRequest 的文档 https://developer.apple.com/library/ios/#documentation/Social/Reference/SLRequest_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Service_Type_Constants.

请注意,在这种情况下,您有责任创建自己的撰写视图。

您当然可以从本机 UI 中获得灵感,也可以查看 iPhoto 的 iOS 应用程序,尝试使用该应用程序共享到 Facebook,您会注意到它请求与您的 Facebook 帐户交互的权限(使用时不会发生这种情况)SLComposeViewController),然后它呈现出非常接近的东西SLComposeViewController用于 Facebook 帖子撰写。

但如果你仔细观察,你会发现它不一样。这也适用于 Twitter 及其本机应用程序与本机集成。他们有自己的撰写视图,值得注意的是他们使用本机 iOS 集成(Apple 框架)。我们之所以知道这一点,是因为转到“设置”>“隐私”>“Twitter”,您可以看到 Twitter 应用程序是使用设备上的 Twitter 帐户的授权应用程序。

Facebook 也是如此。

如果您没有获得许可,那么您将无法发布您的应用程序 - 又名“通过 myApp”。

抱歉让您失望了,我也一直在寻找一种方法来集成ACAccount进入SLComposeViewController但也找不到路。这是一个耻辱......因为本机用户界面很甜蜜。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 iOS 6.0 原生 Facebook 集成共享:“通过我的应用程序名称发布”? 的相关文章

  • 将自定义数据包含到 iOS 故障转储中

    你好 堆栈溢出 有一个简单的问题要问您 当我的应用程序在用户的设备上崩溃时 是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中 例如 我的 SQlite 数据库由于某种原因无法运行 例如 数据库文件已损坏 我无法从这个错误中恢复
  • 如何保护 iOS 应用程序免受任何操作系统攻击(在越狱设备上)

    我希望保护我的应用程序数据 以防任何操作系统攻击或越狱 iOS 设备上的未经授权的访问 在这种情况下 有什么方法可以检测此类威胁并保护应用程序数据 虽然我同意 jrturton 的说法 但如果您有想要保护的关键数据免受流氓应用程序 而不是用
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • NSUInteger 的奇怪行为 - 无法正确转换为浮动

    这是我的情况 这让我发疯 我有一个计数值为 517 的 NSMutableArray 我有一个双精度值 它是我的乘数 double multiplier 0 1223 double result myArray count multipli
  • 生成具有固定数字长度的随机数?

    我正在生成随机数 int randomID arc4random 3000 但我想生成至少 4 位数字的随机数 如 1000 2400 1122 我想知道 Objective C 的代码 请尝试 生成数字 1000 9999 int ran
  • CALayer边框奇怪问题

    我正在向 CALayer 添加边框 但有一些奇怪的行为 在我应用的边框之后出现模糊边框 参见屏幕截图 这是我的代码 void configureLabel self hidden YES self textAlignment NSTextA
  • AVAssetExportSession 无法导出从 iCloud 下载的视频

    我正在尝试创建从用户相册中选择的视频的缩小版本 输出的最大尺寸为 720p 因此 在检索视频时 我使用 mediumQualityFormat as the deliveryMode 如果用户设备中不存在原始视频或其中等质量版本 这会导致
  • UIView animateWithDuration:delay: 工作很奇怪

    我在使用 iPhone 动画块时遇到了一个奇怪的问题 这段代码 UIView animateWithDuration 2 delay 0 options 0 animations void controller setBackgroundC
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • “预期的 ';'在 Swift 下的顶级声明符之后”

    我正在尝试将所有颜色设置在一个 Swift 文件中 该文件可以在我的整个应用程序中使用 下面的代码会导致 import Foundation import UIKit class DotColors let tsblueColor UICo
  • watchOS 错误:控制器接口描述中的未知属性

    我将 WKInterfacePicker 添加到情节提要中 并将其连接到界面控制器中的 IBOutlet 运行应用程序时 它在控制台中显示一条错误消息 控制器的接口描述 watchPicker 中的未知属性 Code interface I
  • UITableViewCell显示多种字体

    我想在 uitableviewcell 中以类似于 iPhone 地址簿的不同字体显示两个单词 例如 约翰Buchanan 您应该使用两个 UILable 或者您可以使用OH属性标签 https github com AliSoftware
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • iOS:如何知道 reloadData() 已完成其任务?

    我想滚动到给定索引 self boldRowPath 但是当我调试时scrollToRow之前执行reloadData 如何知道reloadData已完成 func getAllTimeEvent self arrAllTimeEvent
  • CoreBluetooth:检测设备超出范围/连接超时

    我正在设计一个 iOS 框架来处理多个 BLE 设备 均为同一类型 目前一切都运行良好 除了一件事 客户想要一个包含可用设备的列表 但是 我如何检测过去发现的设备何时不再可用 当我尝试连接到不再可用的设备时 会出现另一个问题 文档说 连接尝
  • 如何表示Apple 发布的Mac OSX 崩溃报告?

    对于 iOS 崩溃报告 将崩溃报告拖放到管理器中就足够了 符号化 iPhone 应用程序崩溃报告 https stackoverflow com questions 1460892 symbolicating iphone app cras
  • 是否可以跨 2 个不同的 iOS 应用程序访问数据?

    假设我在 App1 中存储了一些 ID 数据 并希望在同一设备上的 App2 中访问它 平台上可以这样吗 如果没有的话有什么解决方法吗 您可以使用iOS 钥匙扣 http developer apple com library ios do
  • 如何为 UIImageView 随机化器实现滑动手势

    我一直在浏览大量的教程和问题 但似乎找不到我要找的东西 我有一种感觉 我只是错过了一个简单的步骤 我仍在学习诀窍 所以请承受和我一起做这个 我正在 xcode 4 3 3 上制作图像随机化器 并且我已经能够使用按钮来随机化图像 但我希望它能

随机推荐