2010-11-23 14 views
9

iOS SDKとグラフAPIを使用して自分が所有するFacebookページに写真をアップロードしようとしています。自分の壁に写真をアップロードすることができました。また、私のファンページの壁に管理者としてメッセージを投稿し、ファンページにアルバムを作成することができたので、私は正しい呼び出しをしていると思いますが、成功していないと思います。iOS SDKを使用したFacebookファンページへの投稿

これは私が現在行っていることです。私がログインした後、私は

Facebook *fb = [[Facebook alloc] init]; 
self.facebook = fb; 
[fb release]; 
NSArray *permissions = [[NSArray arrayWithObjects:@"read_stream", @"offline_access", @"publish_stream", @"manage_pages", @"user_photos", @"friends_photos",nil] retain]; 
[facebook authorize:FB_APP_ID permissions:permissions delegate:self]; 
[permissions release]; 

を使用してログインしてい

、私はアカウントが、私が所有し、各ページやアプリのためのアクセストークンを私に返される

[facebook requestWithGraphPath:@"/me/accounts" andDelegate:self]; 

アカウントを要求します。私は単純なループを使用して、アカウントを解析して、写真をアップロードしたいページ用のaccess_tokenを追加します。

私は自分のfacebookオブジェクトのアクセストークンを新しいaccess_tokenに設定しました。

facebook.accessToken = new_accessToken; 

と私は受信応答が

 
{"error":{"type":"OAuthException","message":"(#1) An unknown error occurred"}} 

ある

UIImage *uploadImage = [UIImage imageNamed:@"t200.jpg"]; 
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
       uploadImage, @"source", 
      @"test caption", @"message",    
      nil]; 


[facebook requestWithGraphPath:@"/me/photos" andParams:params 
     andHttpMethod:@"POST" andDelegate:self]; 

を使用して写真の私のファンページを試してみて、アップロードし、これはFacebookのグラフAPIのバグですか?また、標準のHTTPS要求を使用してこの呼び出しを行い、同じ結果を得ました。

答えて

0

私はFB iOSの統合にはかなり新しいので、これについてはわかりませんが、あなたはme/photosを使用すべきではありませんが、xyz/photosはxyzが投稿したいページのIDです。

+0

私はページIDでそれを試してみたが、まだそれはどちらか動作しません。アクセストークンを変更すると、アクセスしたものなので、私の使用は正しいようです。私はあなたのファンページにアクセスします。 – leo83

1

古いニュースですが、ファンページの部分についてはわかりませんが、「/ me/photos」の後に「?access_token = ...」を追加するか、過去に取得するグラフAPIに使用するもの不明なエラーfacebook sdkは自動的にアクセストークンを追加しないため、自分で行う必要があります。

[facebook requestWithGraphPath:[NSString stringWithFormat:@ "/ me/photos?access_token =%@"、facebook.accessToken] andParams:params andHttpMethod:@ "POST" andDelegate:self]; @"/FBFanPageID?fields=access_token"

への要求を行うことにより、

+0

SDKで提供されているようにFacebook.mを見ると、SDKによってaccess_tokenがparamsに追加されていることがわかります。しかし、ファンページのために異なるaccess_tokenを取得する必要があります。 – mahboudz

4

ATERが成功のFacebookにログインし、あなたが@「/ ME /アカウント」を要求することにより、リストのファンページを取得し、ファンページに繰り返すことができますが、そのaccessTokenをしたいと要求する。このaccessTokenが異なっていますあなたのfacebook.accesstoken。ファンページaccessTokenを取得した後

、これは今、あなたは@"/FBFanPageID/albums"

によって @"/FBFanPageID/photos"

要求ファンページのアルバムでファンページの壁にアップロードすることができNECCステップ

ある

[_facebook setAccessToken:_accessTokenForFanPage]; //によってFacebookのaccessTokenとして設定

特定のアルバムにアップロードする@"/AlbumsID/photos"

アップロードには、これらの画像パラメータ辞書が使用されます。

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: IMAGE,@"source", IMAGECAPTION,@"message",
nil];

1

私は非常によく似たコードを持っており、それは動作しますが、わずかに異なっている唯一のことは、私はAppDelegateにFacebookのインスタンスを作成します。..

QRSMAppDelegate *デリゲート=(QRSMAppDelegate *)[[ UIApplication sharedApplication] delegate];

if (![[delegate facebook] isSessionValid]) { 
    [[delegate facebook] authorize:permissions]; 

私は当初、ビューコントローラでFacebookインスタンスを作成していましたが、私は奇妙なエラーが多く出てきました。この問題は、FacebookのクラスインスタンスにURLを渡すことによって応答し、アプリケーションへの唯一のエントリポイントの外に、アプリケーションデリゲートがあります。 (Facebook sdkのサンプルアプリHackbookをチェックしてください)!

- (BOOL)アプリケーション:(のUIApplication *)アプリケーション のOpenURL:(NSURL *)URL sourceApplication:(NSStringの*)sourceApplication 注釈:(ID)注釈{

BOOL ret = [facebook handleOpenURL:url]; 

.... return(ret); }

ここではもちろんの問題は、私だけ離れアプリデリゲートから私のアプリとマイルの小さな部分でのFacebookを使用している場合(Facebookのインスタンス化は、デリゲートを宣言する必要が何である!

むしろ顔より均等に複雑な問題でURLを渡すと、実際には、アプリケーションデリゲートのビューコントローラ(Facebookデリゲート)をinitに割り当てて、ビュー階層に渡す方が簡単でした。

0

ファンページにメールを送信して添付された写真が管理者の投稿と同じように表示されます。

ファンページで、ページの編集を選択してから、モバイルを選択します。 モバイルページでは、ファンページに投稿するために使用できるメールアドレスがFacebookに表示されます。

私はあなたがコード

ドンをダウンロードするには、この...

のsvnチェックアウトhttp://skpsmtpmessage.googlecode.com/svn/trunk/ skpsmtpmessage-読み取り専用

を使用しなければならないメールに

を送信するためにhttp://code.google.com/p/skpsmtpmessage/を使用してIOSで

件名に何か他のテキストを含めてはいけません。それ以外の場合は投稿されません。

関連する問題