Just a Computer Graphics Studio & My Life

原以為使用推特獲取使用者資料 (Using Twitter to Obtain User Information)很麻煩,看了前人的教學之後實作一次,才知原來如此簡單~未來就能夠讓使用者以Twitter的帳號登入我們的APP!

iOS 使用推特 (Using Twitter)

首先在專案加入框架:Accounts.framework

接著在.h檔中寫:

#import <Accounts/Accounts.h>
@property (nonatomic, strong) ACAccountStore *accountStore;
@property (nonatomic, strong) NSArray *accounts;

最後再.m檔中寫:

- (IBAction)fetchData:(UIButton *)button
{
    if (self.accounts == nil){
        if(self.accountStore == nil){
            self.accountStore = [[ACAccountStore alloc] init];
        }
        ACAccountType *accountTypeTwitter = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
        [self.accountStore requestAccessToAccountsWithType:accountTypeTwitter                                     withCompletionHandler:^(BOOL granted, NSError *error) {
            if(granted) {
                dispatch_sync(dispatch_get_main_queue(), ^{
                    self.accounts = [self.accountStore accountsWithAccountType:accountTypeTwitter];
                });
            }
            else {
                // User denied access to his Twitter accounts
                NSLog(@"拒絕使用Twitter連接APP");
            }
        }];
    }
    else {
        // This iOS verion doesn't support Twitter. Use 3rd party library
    }
}
- (IBAction)sendTweet:(UIButton *)button
{
    // 建立viewcontroller
    TWTweetComposeViewController *tweetToTwitter = [[TWTweetComposeViewController alloc] init];
    // 推文加入內容
    [tweetToTwitter setInitialText:@"HappyMan's Studio Twitter API Test"];
    // 推文加入圖片資訊
    [tweetToTwitter addImage:[UIImage imageNamed:@"happyman.jpeg"]];
    // 推文加入網址超連結資訊
    [tweetToTwitter addURL:[NSURL URLWithString:@"https://cg2010studio.wordpress.com/"]];
    // 顯示viewcontroller
    [self presentModalViewController:tweetToTwitter animated:YES];
    // 按下Send或是Cancel時的處理動作(block)
    [tweetToTwitter setCompletionHandler:^(TWTweetComposeViewControllerResult result) {        NSString *tweetActionStr;
        switch (result) {
            case TWTweetComposeViewControllerResultCancelled:
            tweetActionStr = @"取消";
            break;
            case TWTweetComposeViewControllerResultDone:
            tweetActionStr = @"完成";
            break;
            default:
            break;
        }
        NSLog(@"%@", tweetActionStr);
        // 移除viewcontroller
        [self dismissModalViewControllerAnimated:YES];
    }];
}

編譯執行點擊按鈕,輸入相關資料,送出去訊息後,馬上就能在它的網站上看到結果呢!

ios 使用推特 (Using Twitter) 結果

獲得使用者的個人資料:

<__NSArrayI 0x1cd8d700>(
type:com.apple.twitter
identifier:
accountDescription: @HappyMan
username: HappyMan
objectID: x-coredata://
enabledDataclasses: {(
)}
enableAndSyncableDataclasses: {(
)}
properties: {
fullName = HappyMan;
“user_id" = 123456789;
}
parentAccount: (null)
owningBundleID:com.atebits.Tweetie2
)

順利使用推特的前提是要在系統的設定(Setting)登入我們的Twitter,不必下載Twitter APP,接著授權給我們的APP,若想更動授權狀態關閉或開啟,必須去系統的APP設定(Setting)那兒去轉開關。

setting Facebook & Twitter

參考:使用 Social Framework 對社群網站發佈訊息ios5 use Twitter & Accounts framework

Advertisements

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: