2011-12-13 57 views
1

我是我的應用程序中的MGTwitterEngine發佈狀態到twitter。
在我的設置中,我有切換決定是否發佈。當開關打開時,如果twitter引擎沒有授權,我要求twitter登錄。並能夠發佈到Twitter。
但是,當我退出應用程序並重新開始,它不再被授權。
但是,如果你看到Facebook的iOS庫,它保留了不同的應用程序啓動之間的會話。當我重新啓動我的應用程序時,如何讓我的應用程序記住Twitter身份驗證?iOS - 如何發佈到twitter類似於facebook

回答

0

Twitter採用OAuth 1.0協議,您應該使用它來進行身份驗證。當你進行身份驗證時,Twitter會給你一個訪問令牌,然後你可以使用這個訪問令牌來進行任何已認證的請求,例如發佈推文。根據Twitter's documentation,這些訪問令牌永不過期,除非用戶拒絕您的應用或管理員暫停您的應用。

MGTwitterEngine有一個你應該遵守的MGTwitterEngineDelegate協議,在這個協議中有一個方法定義爲- (void)accessTokenReceived:(OAToken *)aToken forRequest:(NSString *)connectionIdentifier這個方法應該在接收到訪問令牌時被調用,當它被調用時接收到的令牌被傳遞給它。在沒有任何關於MGTwitterEngine的進一步知識的情況下,您應該捕獲該令牌並將其存儲在安全的地方,如Keychain Service。稍後,當您構建必須經過身份驗證的Twitter請求時,您可以從鑰匙鏈中檢索訪問令牌並重新使用它。

正如我所說,這是我建議不知道MGTwitterEngine多少的過程,我期望MGTwitterEngine爲您處理存取令牌的存儲並在必要時重新使用它。但它可能不是這樣構建的。

+0

除非有一個新的MGTwitterEngine fork/release,否則不要使用它,因爲在我的經驗中,它在iOS5上失敗。我很樂意在這個問題上聽到不同的答案,因爲我習慣了這個問題。 – Till

+0

很高興知道@Till,我可能會使用ShareKit,它似乎很流行http://getsharekit.com/ –

+1

ShareKit也被原作者停用,並且在iOS5中也存在問題。但是再次,iOS5帶來了本地支持,所以爲什麼不在iOS5平臺上提供本地解決方案並在其他平臺上使用其中一種替代方案。 – Till