2010-08-02 11 views
5

我設法在我的iPhone應用程序上實現Facebook連接,並允許用戶通過應用程序上傳狀態更新。我現在想包括一個功能,允許上傳照片和標題或狀態更新。有誰知道這個相關的代碼?將帶有標題或狀態的照片上傳到iPhone上的Facebook應用程序

我想我應該在FB中使用photos.upload API,但我不太清楚如何。 Facebook文檔似乎都非常通用,沒有針對iPhone開發的特定代碼。任何援助或示例代碼,值得讚賞。

回答

10

下面的代碼片段取自facebook-ios-sdk。假設你的類已經有一個Facebook的對象,這種方法會上傳照片,從一個URL(根據需要更改):

-(IBAction) uploadPhoto: (id)sender { 
    NSString *path = @"http://www.facebook.com/images/devsite/iphone_connect_btn.jpg"; 
    NSURL *url = [NSURL URLWithString:path]; 
    NSData *data = [NSData dataWithContentsOfURL:url]; 
    UIImage *img = [[UIImage alloc] initWithData:data]; 

    NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            img, @"picture", 
            nil]; 
    [facebook requestWithMethodName: @"photos.upload" 
         andParams: params 
        andHttpMethod: @"POST" 
         andDelegate: self]; 
    [img release]; 
} 

爲了發送標題與您必須添加的「消息」參數鍵,然後照片由標題文本。更改params像下面要實現這一點:

NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           img, @"picture", 
       @"my photo's caption text here.", @"message" 
           nil]; 
+0

我有在使用樣例代碼從Facebook的困難。我經常得到一個錯誤代碼操作無法完成。 (facebookErrDomain誤差101)」的UserInfo = 0x4b46da0 {request_args =( { 鍵=方法; 值= 「photos.upload」; },{ 鍵 = SDK; 值= IOS; },{ 鍵= 「sdk_version」; 值= 2; }, { 鍵=格式; 值= JSON; } ),ERROR_MSG =無效API密鑰,ERROR_CODE = 101} 任何人都可以闡明一些 – Anthony 2010-12-12 13:30:08

+1

我的第一個想法是確保在登錄發生時,@「publish_stream 「是允許您發佈給用戶的請求權限之一。不幸的是,github的例子只有:_permissions = [[NSArray arrayWithObjects:@「read_stream」,@「offline_access」,nil] retain];添加@「publish_stream」,它應該工作。 – dredful 2010-12-14 00:56:39

+0

非常感謝您分享代碼。它真的幫了我很多......我面臨的唯一問題是我的標題沒有被上傳。我使用完全相同的代碼你提到,但沒有上傳在標題字段。 – Tobias 2011-05-12 15:47:36

0

您可以通過使用iOS版的Facebook SDK如下上傳照片:

FBSDKSharePhoto *photo=[[FBSDKSharePhoto alloc]init]; 
    photo.image=slideImage; 

    FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init]; 
    content.photos = @[photo]; 

    [FBSDKShareDialog showFromViewController:self withContent:content delegate:self]; 

This works only if you configure iPhone Facebook settings. 
相關問題