2014-02-19 37 views
0

我正在寫一個Xamarin的iOS應用程序,並有困難的整合Facebook SSO,但我不認爲我的問題必然是Xamarin特定的,只是缺乏對如何理解整合Facebook SSO而沒有Facebook iOS SDK的好處。集成一個Xamarin應用程序與Facebook的SSO與Facebook的iOS應用程序

我按照各種指南,也做了以下內容:

1)有一個Facebook應用程序設置: 一)iOS平臺加入包ID匹配我的應用程序的包ID b)單標誌啓用

2)設置我的info.plist如下: info.plist

raw text: 

<key>CFBundleDisplayName</key> 
<string>[company]</string> 
<key>CFBundleIdentifier</key> 
<string>com.[company].ios.app</string> 
<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb123490xxx</string> 
     </array> 
     <key>CFBundleURLName</key> 
     <string>com.[company].ios.app</string> 
    </dict> 
</array> 
<key>FacebookAppID</key> 
<string>123490xxx</string> 
<key>FacebookDisplayName</key> 
<string>[company] Staging</string> 

3)已執行下面的代碼在我的應用:

FacebookLoginButton.TouchUpInside += (sender, e) => 
     { 
      var urlWithAppProtocol = new NSUrl("fb123490xxx://"); 
      UIApplication.SharedApplication.OpenUrl(urlWithAppProtocol); 
     }; 

我還沒有覆蓋AppDelegates方法(和的OpenURL HandleOpenUrl),但因爲據我可以看到那些處理傳入的重定向到我的應用程序;接下來我會開始工作。

要清楚,就是我希望看到的是FB iOS應用中對應的屏幕(從移動Safari瀏覽器) mobile safari

但是,如果我重定向到:
「FB:// [ appid]「我被重定向到FB應用程序,但只是到新聞提要頁面(或者我上次使用FB應用程序時的最後一個屏幕)

」fb [appid]://「我什麼都沒發生,.OpenUrl()什麼都不做;

「fb:// profile/[appid]」作爲實驗,我得到以下內容(注意「應用程序不適用於您的手機」);這可能是因爲你應該在/ profile中使用PageID。

profile

缺少什麼我在這裏?

+0

我沒有關於單聲道的知識,但是調用URL'fb123490xxx:'只會打開你的應用程序。您應該在Facebook SDK或Account商店中調用某種方法來獲取所需的屏幕。 – rckoenes

+0

「賬戶商店」是什麼意思?並調用Url「fbxxx」將打開Facebook應用程序的權利,而不是我的應用程序? –

+0

沒有調用'fbxxxxx',其中xxxx將是您的來自Facebook的應用程序將打開您的應用程序而不是Facebook應用程序。帳戶存儲:https://developer.apple.com/library/ios/documentation/Accounts/Reference/ACAccountStoreClassRef/ACAccountStore。html – rckoenes

回答

3

好吧,最後它只是簡單地將fbauth://authorize與oauth url中的普通查詢字符串參數結合使用。重定向URL是否需要fbconnect://success

我發現這個通過閱讀FB的iOS SDK的源代碼:

https://github.com/keithpitt/DKSocial/blob/72cd77bc15ca1a307b92aff8382f2c71a97da7de/External/FBConnect/Facebook.m

有可能是一個教訓,在這裏使用官方的Xamarin綁定Facebook的iOS版SDK,它提供了這個功能。我最終走下了手動路線,因爲我開始使用Facebook .NET SDK,但似乎並未提供此基於應用程序的SSO功能。

+0

嗨,馬克,我有一些問題使用iOS的FB SDK。我無法設置「publish_actions」權限。你使用SDK成功了嗎? – John

相關問題