Top Banner
AuthTwitterEngine ASIHTTPRequest を使ってTwitPicに投稿する 沖田@tmokita 121117日土曜日
26

Wtidev 0430 tmoktia

Jul 13, 2015

Download

Documents

Tomohiko Okita
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Wtidev 0430 tmoktia

xAuthTwitterEngine

ASIHTTPRequestを使ってTwitPicに投稿する

沖田@tmokita

12年11月17日土曜日

Page 2: Wtidev 0430 tmoktia

自己紹介• 沖田ともひこ• フリープログラマ• 以前は組み込みとかゲームとか

• Twitter:@tmokita

• お仕事ください

12年11月17日土曜日

Page 3: Wtidev 0430 tmoktia

• いまどきTwitter連携くらいしないと(*´・ω・)(・ω・`*)ネー

• 画像系アプリなら画像も投稿したいよ(*´・ω・)(・ω・`*)ネー

今回の発表の背景

12年11月17日土曜日

Page 4: Wtidev 0430 tmoktia

参考サイト• MetaArt

TwitPicへ投稿するiPhoneアプリが出来るまでhttp://iphone.moo.jp/app/?p=571

• 非常に参考になりましたありがとうございます

12年11月17日土曜日

Page 5: Wtidev 0430 tmoktia

申請とかしておいてね!

• TwitterにxAuthの申請をしてAPIキーなどを取得しておくhttps://dev.twitter.com/

• TwitPicに申請してAPIキーを取得しておくhttp://dev.twitpic.com/

12年11月17日土曜日

Page 7: Wtidev 0430 tmoktia

TwitPic→Twitterポストするまでの流れ• AccessToken取得

• TwitPicにポスト

• レスポンスからTwitPicのURLを取得

• TwitPicのURLをTwitterにポスト

12年11月17日土曜日

Page 8: Wtidev 0430 tmoktia

XAuthTwitterEngineDemoをベースにTwitPic投稿を実装してみる

12年11月17日土曜日

Page 9: Wtidev 0430 tmoktia

Twitterへのポスト(1/1)

• XAuthTwitterEngineDemoViewController.h

ConsumerKeyConsumerSecretを定義する

12年11月17日土曜日

Page 10: Wtidev 0430 tmoktia

• ここまでTwitterへのポスト

12年11月17日土曜日

Page 11: Wtidev 0430 tmoktia

TwitPicへのポスト(1/7)

• twitpicpac をプロジェクトに追加

12年11月17日土曜日

Page 12: Wtidev 0430 tmoktia

• 必要なフレームワークを追加CFNetwork.frameworkMobileCoreServices.frameworkSystemConfiguration.frameworklibxml2.dyliblibz.1.2.3.dylib

• libXmlのパスを追加(ヘッダ検索パス)${SDKROOT}/usr/include/libxml2

TwitPicへのポスト(2/7)

12年11月17日土曜日

Page 13: Wtidev 0430 tmoktia

• 投稿する画像を追加

PostImage.jpg

TwitPicへのポスト(3/7)

12年11月17日土曜日

Page 14: Wtidev 0430 tmoktia

• createOAuthEchoRequestuploadToTwitterByTwitPic2つのメソッドをコピペさせて頂く

• #import "ASIFormDataRequest.h"#import "OAMutableURLRequest.h"

TwitPicへのポスト(4/7)

12年11月17日土曜日

Page 15: Wtidev 0430 tmoktia

• uploadToTwitterByTwitPic の編集

jsonをxmlにする

TwitPicのキーを設定する削除

TwitPicへのポスト(5/7)

APIキーはhttp://dev.twitpic.com/apps/

で確認できる

12年11月17日土曜日

Page 16: Wtidev 0430 tmoktia

• ASIHTTPRequestDelegate

• #import "ASIHTTPRequestDelegate.h"

TwitPicへのポスト(6/7)

12年11月17日土曜日

Page 17: Wtidev 0430 tmoktia

• ボタンを押したときの処理を変更

TwitPicへのポスト(7/7)

12年11月17日土曜日

Page 18: Wtidev 0430 tmoktia

• ここまでTwitPicへのポスト

12年11月17日土曜日

Page 19: Wtidev 0430 tmoktia

TwitPicのURLをTwitterにポストする

(1/3)

<?xml version="1.0" encoding="UTF-8"?><image> <id>XXXXXX</id> <text>Testing xAuth from the XAuthTwitterEngineDemo!</text> <url>http://twitpic.com/XXXXXX</url> <width>256</width> <height>256</height> <size>56123</size> <type>jpg</type> <timestamp>Fri, 29 Apr 2011 12:05:43 +0000</timestamp> <user> <id>123456789</id> <screen_name>tmokita</screen_name> </user></image>

• TwitPicからのレスポンス

12年11月17日土曜日

Page 20: Wtidev 0430 tmoktia

• URLを取得してTwitterにポストする

• #import "XPathQuery.h"

xPath

TwitPicのURLをTwitterにポストする

(2/3)

12年11月17日土曜日

Page 21: Wtidev 0430 tmoktia

• ポスト結果(Echofonで見た画面)

TwitPicのURLをTwitterにポストする

(3/3)

12年11月17日土曜日

Page 22: Wtidev 0430 tmoktia

• めでたしめでたし

12年11月17日土曜日

Page 23: Wtidev 0430 tmoktia

おまけメモ(1/3)

AccessTokenは一度取得すればOK

認証からポストまで一気にやろうとする場合にちょっとはまった点。TwitterEngine::exchangeAccessTokenForUsername

でアクセストークン取得出来るが、その値が返ってくるdelegate

メソッド、storeCachedTwitterXAuthAccessTokenString

これが呼ばれたときは、まだTwitterEngineのaccessTokenプロパティに値が入っていない。なので、ここからポストする場合は一旦performSelectorとかで抜けてからやる必要がある。

12年11月17日土曜日

Page 24: Wtidev 0430 tmoktia

XAuthTwitterEngineDelegateASIHTTPRequestDelegateを書いといておけばそれぞれのdelegateがくる TwitterEngine::sendUpdateの方は- (void)requestSucceeded:(NSString *)connectionIdentifier- (void)requestFailed:(NSString *)connectionIdentifier withError:(NSError *)errorが、ASIの方は-(void)requestFinished:(ASIHTTPRequest*)request-(void)requestFailed:(ASIHTTPRequest*)requestが、呼ばれる。

おまけメモ(2/3)

12年11月17日土曜日

Page 25: Wtidev 0430 tmoktia

おまけメモ(3/3)

なので、認証から一気にやる場合、1:TwitterEngine::exchangeAccessTokenForUsername2:TwitterEngine::storeCachedTwitterXAuthAccessTokenString (Delegate)3:2からperformSelectorとかで適当なメソッド呼ぶ4:uploadToTwitterByTwitPic (ブログのメソッド)

5:ASI::requestFinished (Delegate)6:TwitterEngine::sendUpdate7:TwitterEngine::requestSucceeded (Delegate)っていう感じになる。

12年11月17日土曜日

Page 26: Wtidev 0430 tmoktia

• ご清聴ありがとうございました

12年11月17日土曜日