2011-10-05 40 views
7

我試圖實現新的oAuth2 Facebook SDK到我的應用程序,但不能爲我的生活理解我應該回到我的應用程序一旦登錄/認證。Facebook的iOS SDK不返回到我的應用程序

我的目標是在用戶牆上發佈消息。

我目前開始在登錄過程與此:

-(void)tryFBlogin { 

NSString *appId = @"113142482******"; 

NSArray *permissions = [[NSArray arrayWithObjects:@"publish_stream",nil] retain]; 

TheAppDelegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate]; 

//Asking for permission 
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate]; 
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self]; 
Facebook *fb = [theAppDelegate facebook]; 
[fb authorize:permissions]; 

} 

它打開Safari瀏覽器。如果我已經登錄並且授權了應用程序,則消息會告訴我,並且我有一個OKay按鈕可以按下。

當我按OKAY按鈕時,我收到一條警告,說Safari瀏覽器無法打開頁面。我確認了警報,並且正在看着空白的Safari瀏覽器窗口。

如果我從Facebook註銷,我會看到我填寫的登錄屏幕,然後顯示與上面相同的內容。

據我所知,我還沒有在任何地方實施發佈命令,因爲我不知道應該在哪裏/何時實施。

我有替代該委託方法但這似乎從來沒有得到所謂

- (void)fbDidLogin { 

    NSLog(@"fbDidLogin"); 
} 

這是我等待的地方放置代碼:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
kAppId, @"113142482******", 
facebookUrl, @"link", 
@"http://www.domain.com", @"picture", 
@"My Message", @"name", 
@"Caption text!", @"caption", 
@"Message text.", @"message", 
nil]; 

[facebook dialog:@"feed" andParams:params andDelegate:self]; 

我也有以下幾種方法在我的應用程序主AppDelegate:

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 
    [facebook handleOpenURL:url]; 
return YES; 
} 

任何幫助/建議將非常多ppreciated。

感謝

馬克

+0

您是否註冊過您的應用程序以打開plist中的Facebook sdk回調(CFBundleURLTypes)? – mja

+0

不知道這是我的愚蠢還是不明確的說明,但我的問題是定義fb [113142482 ******]時它需要fb113142482 ******。 沒有方括號。 – crooksy88

回答

25

我有同樣的問題。只是爲了澄清一些其他的答案,這裏是我如何解決了該問題對於我的iPhone應用程序在Xcode 4.2:

.plist file 
    "URL types" 
    "Item 0" 
     "URL Schemes" 
     "Item 0" 
      "fb21593853845xxxx" 
+0

你能詳細解釋一下嗎?什麼是「fb21593853845xxxx」值? – Dermot

+1

當然!這是「App ID/API Key」字段的值(可在developers.facebook.com/apps頁面的設置下找到),並在Facebook iOS SDK文檔中添加了「fb」前綴。 –

+0

我發誓教程可能會強調「fb」字母要求。它只是說fbYOUR_APP_ID,我認爲這只是數字。我從來沒有想過我會需要數字的「fb」面前。 – Zhang

-1

你必須寫你的AppID到你的.plist

0

精氨酸,你最好開的.plist作爲代碼源,你應該看到:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb38*******</string> 
     </array> 
    </dict> 
</array> 
相關問題