【问题标题】:Cannot compose tweets with Twitter Kit 3无法使用 Twitter Kit 3 撰写推文
【发布时间】:2018-02-16 01:47:24
【问题描述】:

我按照 https://dev.twitter.com/twitterkit/ios/compose-tweets 的指示通过我的 iOS 11 的 Object C 应用程序撰写推文

// Objective-C
TWTRComposer *composer = [[TWTRComposer alloc] init];

[composer setText:@"just setting up my Twitter Kit"];
[composer setImage:[UIImage imageNamed:@"twitterkit"]];

// Called from a UIViewController
[composer showFromViewController:self completion:^(TWTRComposerResult result) {
    if (result == TWTRComposerResultCancelled) {
        NSLog(@"Tweet composition cancelled");
    }
    else {
        NSLog(@"Sending Tweet!");
    }
}];

但是,在[连接您的帐户]屏幕上单击连接按钮后,它在没有撰写推文的情况下返回应用程序(Twitter 已登录)。 似乎 showFromViewController 没有运行。 有人遇到同样的问题吗?

【问题讨论】:

  • 我按照这个说明让它运行了(它是日文的,但你不需要懂日文就可以阅读它,只需阅读代码:))iphone-app-developer.seesaa.net/article/452391500.html
  • 我也有同样的问题。您是否知道在“关联您的帐户”阶段究竟是什么导致了问题?

标签: ios objective-c twitter ios11 twitterkit


【解决方案1】:

首先在 Twitter 上为您的应用获得读/写权限。

    if ([[Twitter sharedInstance].sessionStore hasLoggedInUsers]) {
  NSString *twitterLoggedInInfo = [[NSUserDefaults standardUserDefaults] objectForKey:@"TwitterLoggedInInfo"];

  if (![twitterLoggedInInfo isEqualToString:@"v3"]) {
    NSString *currentUserID = [Twitter sharedInstance].sessionStore.session.userID;
    [[Twitter sharedInstance].sessionStore logOutUserID:currentUserID];

    [[NSUserDefaults standardUserDefaults] setObject:@"v3" forKey:@"TwitterLoggedInInfo"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    [[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error) {
      if (session) {
        TWTRComposerViewController *composer = [[TWTRComposerViewController alloc] initWithInitialText:tweetText image:tweetImage videoURL:nil];
        [self presentViewController:composer animated:YES completion:nil];
      }
    }];
  } else {
    if (![twitterLoggedInInfo isEqualToString:@"v3"]) {
      [[NSUserDefaults standardUserDefaults] setObject:@"v3" forKey:@"TwitterLoggedInInfo"];
      [[NSUserDefaults standardUserDefaults] synchronize];
    }

    TWTRComposerViewController *composer = [[TWTRComposerViewController alloc] initWithInitialText:tweetText image:tweetImage videoURL:nil];
    [self presentViewController:composer animated:YES completion:nil];
  }
  } else {
    [[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error) {
      if (session) {
        TWTRComposerViewController *composer = [[TWTRComposerViewController alloc] initWithInitialText:tweetText image:tweetImage videoURL:nil];
        [self presentViewController:composer animated:YES completion:nil];
      }
    }];
  }

TwitterLoggedInInfo 键检查您仅存在 读取权限 用户,我的意思是使用此键是可选的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 2020-09-09
    • 2011-09-30
    • 2012-04-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多