【问题标题】:Facebook and Twitter Connect in iOS [closed]iOS 中的 Facebook 和 Twitter Connect [关闭]
【发布时间】:2014-03-01 04:43:05
【问题描述】:

我想将 Facebook 和 Twitter 帐户与我的 iOS 应用程序相关联。我正在寻找检查帐户是否存在于设置中的代码。如果有,则需要使用相同的帐户登录,如果没有,则要求用户在设置中添加帐户。

我尝试了几件事,但真的没有用。如果有人需要我的代码,请告诉我,我会将其发布在 pastebin 上。

【问题讨论】:

  • 您可以在此处发布您的相关代码并说明您所面临的问题。

标签: ios objective-c facebook twitter


【解决方案1】:

在您的项目中添加 Twitter 和社交框架并导入您的类文件中,如

#import <Social/Social.h> #import <Twitter/Twitter.h>

For Facebook

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    NSData *aImgdata=[[NSUserDefaults standardUserDefaults]objectForKey:@"EditImage"];
    if (aImgdata) {
        UIImage *aImage=[UIImage imageWithData:aImgdata];
        [controller addImage:aImage];
    }

    controller.completionHandler = ^(SLComposeViewControllerResult result) {
        if(result == SLComposeViewControllerResultDone) {

        }
        [self dismissViewControllerAnimated:YES completion:nil];

    };
    [self presentViewController:controller animated:YES completion:Nil];
}
else
{

     [self ShowAlertView: @"You can't share on facebook right now, make sure your device has an internet connection and you have at least one Facebook account setup"];

}

For Twitter

if([TWTweetComposeViewController canSendTweet]) {

        {

            TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];

            NSData *aImgdata=[[NSUserDefaults standardUserDefaults]objectForKey:@"EditImage"];
            if (aImgdata) {
                UIImage *aImage=[UIImage imageWithData:aImgdata];
                [tweetViewController addImage:aImage];
            }

            tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult result) {
                if(result == TWTweetComposeViewControllerResultDone) {

                    [self ShowAlertView: @"Tweet Has been Shared"];

                }
                [[AppDelegate sharedInstance]showActivity:NO];
                [self dismissViewControllerAnimated:YES completion:nil];
            };

            [self presentViewController:tweetViewController animated:YES completion:nil];

        }

    } else {

        [self ShowAlertView: @"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup"];
    }

【讨论】:

  • 我想在切换按钮上实现它,就像我展示了一个用于连接 Facebook 和连接推特的切换按钮,是否可以实现它?如果帐户在那里,则用户将使用相同的详细信息重定向到我的 Facebook 应用程序/推特应用程序。
【解决方案2】:

将社交框架添加到您的项目并导入您的课程中

#import <Social/Social.h>

对于 Facebook

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [controller addImage:UIImage];
controller.completionHandler = ^(SLComposeViewControllerResult result) {
    if(result == SLComposeViewControllerResultDone) {

    }
    [self dismissViewControllerAnimated:YES completion:nil];

};
[self presentViewController:controller animated:YES completion:Nil];
}
else
{

 //Show Alert: No Facebook Account in Settings Page

}

推特

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

    [controller addUrl:NSURL];
controller.completionHandler = ^(SLComposeViewControllerResult result) {
    if(result == SLComposeViewControllerResultDone) {

    }
    [self dismissViewControllerAnimated:YES completion:nil];

};
[self presentViewController:controller animated:YES completion:Nil];
}
else
{

 //Show Alert: No Twitter Account in Settings Page

}

【讨论】:

    【解决方案3】:

    要检查您是否可以与 Facebook 或 Twitter 分享,请使用:
    [SLComposeViewController isAvailableForServiceType:serviceType]
    其中 serviceType 可以是任何 SLServiceType,例如 SLServiceTypeFacebookSLServiceTypeTwitter

    这将基本上检查他们是否在其设置中本地连接了这些服务。我认为您不能要求用户将其添加到他们的设置中。大多数情况下,如果某个特定的共享选项不可用,例如 UIActionSheet,它就不会显示。

    我的猜测是您可以使用SLComposeViewController 来检查已连接的帐户,如果未连接,请使用适当的 SDK 将其帐户与您的 iOS 应用程序连接。

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2012-09-27
      • 2014-01-05
      • 1970-01-01
      相关资源
      最近更新 更多