2012-02-17 50 views
1

我想從我的Native iOS應用程序發佈一個簡單的URL到Facebook。我做的是這樣的:如何使用最新的Facebook SDK從iOS發佈某些內容到Facebook?

facebook = [[Facebook alloc] initWithAppId:FB_APP_ID andDelegate:delegate]; 

然後在在這一點上我的應用程序退出某些時候

[facebook authorize:permissions]; 

連帶我的Safari瀏覽器的權限頁面,而不是展示我的登錄,對話框和(在我的應用程序內)我登錄的地方,然後點擊帖子或某個帖子到我的牆上。

我很確定這是一個簡單的問題,但由於這是我第一次做facebook整合,所以配置它很麻煩,文檔也無濟於事。

任何幫助表示讚賞!謝謝!

回答

2

如果你一定要刪除重定向到Safari或Facebook的應用程序,你應該打開FBConnect Facebook.h類,找到下面的方法:

- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth 
        safariAuth:(BOOL)trySafariAuth { 

你有沒有要指出你不想在任何地方重定向,做一套這兩個布爾變量以NO

- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth 
         safariAuth:(BOOL)trySafariAuth { 
tryFBAppAuth = NO; 
trySafariAuth = NO; 

下,才能發佈內容到牆,你有兩個選擇。一個壞了 - 標準的facebook對話框窗口,一旦你在你的應用程序中隨時顯示任何UIAlertView,它將使鍵盤變成實際的webview,因此不要使用它。改爲使用您自己的自定義界面,並使用簡單的UITextView區域和牆上插座按鈕。下面是你需要爲了從後您的自定義視圖牆的方法:

- (void)facebookPostToWallWithMessage:(NSString *)message { 
    sharedInstance.facebookDelegate = delegate; 
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
           message, @"message", // The status message 
           nil]; 

    pushMessageRequest = [facebook requestWithGraphPath:@"me/feed" 
              andParams:params 
             andHttpMethod:@"POST" 
              andDelegate:self]; 
} 

而這裏的,你需要以通知用戶該代表團方法,他們已經發布了更新或告訴他們它已經失敗了:

- (void)request:(FBRequest *)request didLoad:(id)result { 
    if (request == pushMessageRequest) { 
    NSLog(@"message has been posted, inform delegate"); 
    } 
} 

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error { 
    if (request == pushMessageRequest) { 
//failed to post message, inform delegate 
    //[facebookDelegate facebookFailedToPostToWallWithMessage:error.localizedDescription]; 
    } 
} 
+0

你知道如何用新的facebook-ios-sdk更新來阻止重定向嗎?他們通過外觀去除了這些功能?我真的很棒! – jimbob 2012-08-09 22:57:00

+0

我真的不知道怎麼來的,但那些重定向正在成爲所有的應用程序常見的事,所以你應該理會他們太多。最好繼續這個流程 – Eugene 2012-08-10 09:45:59

相關問題