Iam使用Outh将Twitter添加到我的应用程序中,我收到了来自Twitter团队的邮件。
感谢您的加入,我们将尊重您图片的机密性。您的应用程序现在可以使用xAuth,我们的文档可在此处获取:http://dev.twitter.com/pages/xauth。
谢谢, Twitter API政策
现在我使用我的应用程序登录Twitter帐户,但我无法发布推文。
基本上Iam使用两个不同的视图,一个用于登录过程,第二个用于发布推文。
我的问题是。
1.如果我只使用一个视图,那么推文就会发布。但是根据我的要求,我需要从另一个视图发帖。我能怎样做?
我使用这种方法发布。
[_engine sendUpdate:str];
请在这里帮助我。
答案 0 :(得分:0)
我认为这会帮助你:
答案 1 :(得分:0)
就像我回答你的其他帖子一样,你在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];
答案 2 :(得分:0)
如果您想在文本框中发布您输入的内容,我可以在此帮助您。 1.您必须将twitter4j库包含在gradle文件中,如下所示:
compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.1'
2。在您的代码中包含以下代码段:
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;
}
}
希望它有所帮助。