【问题标题】:unable to post tweets to twitter using Outh无法使用 Outh 将推文发布到 Twitter
【发布时间】:2011-09-30 14:19:41
【问题描述】:

我正在使用 Outh 将 Twitter 添加到我的应用程序中,我收到了来自 twitter 团队的邮件。

感谢您的来信,我们会尊重您图片的机密性。您的应用程序现在可以使用 xAuth,我们的文档可在此处获得:http://dev.twitter.com/pages/xauth

谢谢, Twitter API 政策

现在我正在使用我的应用程序登录 Twitter 帐户,但我无法发布推文。

基本上,我使用两种不同的视图,一种用于登录过程,另一种用于发布推文。

我的问题是。

1.如果我只使用一个视图,则推文正在发布。但根据我的要求,我需要从另一个视图发布。我怎样才能实现?

我用这个方法发帖。

         [_engine sendUpdate:str];

请帮帮我。

【问题讨论】:

    标签: iphone twitter


    【解决方案1】:

    我认为这会对你有所帮助:

    Oauth authorization callback

    【讨论】:

      【解决方案2】:

      就像我为你的其他帖子回答的一样,你在 DetailViewController 中使用相同的 _engine 对象。 您可以按如下方式实现, 为同一个 SA_Twitter 声明一个对象......引擎某个类。 您只需在加载该控制器时将此 _engine 对象分配给 detailviewController

      在 SettingsViewController 的必要位置执行以下操作

      //This engine object should be declared @ .h of settings
          if ([SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:engine delegate:self]) {
                      [self presentModalViewController:[SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:engine delegate:self] animated:YES];
                  }
      

      在详细视图中为 SA_OAuthTwitterEngine 声明一个变量

      SA_OAuthTwitterEngine *_engine;
      
      @property (nonatomic, retain) SA_OAuthTwitterEngine *_engine;
      

      最后,当你从 settigs 转到 detailview 时,

          DetailView  *detailObj=[[DetailView alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
          detailObj._engine=self.engine;
          [self presentModalViewController:detailObj animated:YES];
          [detailObj release];
      

      【讨论】:

      • 从哪里我需要分配?以及如何分配?请给我一些代码。
      【解决方案3】:

      如果您想发布您在文本框中输入的内容,我可以在这里为您提供帮助。 1.你必须在gradle文件中包含twitter4j库,如下:

      compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.1'
      

      2。在您的代码中包含以下代码 sn-p:

      public String sTweet;
      EditText et_TweetText;
      public static String consumerkey = "xxxxxxxxxxxxxxxxx";
      public static String consumersecret = "xxxxxxxxxxxxxxxxx";
      public static String accesstoken="xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxx";
      public static String accesstokensecret="xxxxxxxxxxxxxxxxx";
      
       protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      et_TweetText = (EditText) view.findViewById(R.id.et_TweetText);
      
      bt_tweetIt = (Button) view.findViewById(R.id.bt_tweetIt);
      bt_tweetIt.setOnClickListener(this);
      }
      @Override
      public void onClick(View v) {
      sTweet = et_TweetText.getText().toString();
      Log.i(TAGTweet, "onClick- sTweet: " + sTweet);
      
      if(CheckConnectivity()!=0){
      Log.i(TAGTweet, "Internet Connection ON: ");
      new UseTweeter().execute();
      }
      else {
      Log.i(TAGTweet, "Internet Connection OFF: ");
      ShowNoInternetConnectionAlert();
       }
      }
       public class UseTweeter extends AsyncTask<String,String,String>{
       @Override
       protected String doInBackground(String... params) {
       TweetThisMessage();
       return null;
        }
       }
      public void TweetThisMessage(){
      ConfigurationBuilder builder = new ConfigurationBuilder();
      builder.setOAuthAccessToken(accesstoken);
      builder.setOAuthAccessTokenSecret(accesstokensecret);
      builder.setOAuthConsumerKey(consumerkey);
      builder.setOAuthConsumerSecret(consumersecret);
      OAuthAuthorization auth = new OAuthAuthorization(builder.build());
      Twitter twitter = new TwitterFactory().getInstance(auth);
      try {
      Log.i(TAGTweet, "sTweet in TweetThisMessage(): " + sTweet);
      twitter.updateStatus(sTweet);
      } catch (TwitterException e) {
      e.printStackTrace();
      return;
       }
      }
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2012-04-01
        • 2011-06-19
        • 2011-03-08
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-08
        • 1970-01-01
        相关资源
        最近更新 更多