2011-07-07 53 views
0

Iam使用Outh將Twitter添加到我的應用程序,我從Twitter團隊收到了郵件。無法發佈推文使用Outh的推文

謝謝您的參與,我們會尊重您圖片的保密性。您的應用程序現在可以使用xAuth,我們的文檔可在此處獲得:http://dev.twitter.com/pages/xauth

感謝, Twitter的API政策

現在蔭越來越登錄與我的應用程序的Twitter賬戶,但蔭無法發佈的tweet。

基本上Iam使用兩個不同的視圖,一個用於登錄過程,另一個用於發佈推文。

我的問題是。

1.如果我只使用一個視圖,tweets正在發佈。但根據我的要求,我需要從另一個視圖發佈帖子。如何可以存檔?

Iam使用此方法發佈。

  [_engine sendUpdate:str]; 

請幫我這裏。

回答

0

像我回答烏拉圭回合的其他職務,U使用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]; 
      } 

的必要請將下列的DetailView聲明一個變量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]; 
+0

從哪裏我需要分配?以及如何?請張貼我一些代碼。 –

+0

你的問題解決了嗎? –

0

如果你想發佈你在文本框中輸入的內容,我可以幫你在這裏。 1.必須已納入gradle這個文件twitter4j庫如下:

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; 
} 
} 

希望它能幫助。