6

Son FB giriş API ben MVVMCross kullanıyorum üç parametreXamarin: en son FB API ile Sayı

public unsafe virtual void LogInWithReadPermissions (string[] permissions, UIViewController fromViewController, [BlockProxy (typeof(Trampolines.NIDLoginManagerRequestTokenHandler))] LoginManagerRequestTokenHandler handler) 

sahiptir.

private async void DoFacebookSignIn() 
     { 
      try 
      {    
       await facebookService. Login(); 
       DoAutoLogin(); 
      } 
} 

SERVİS:

private readonly string[] permitions = new string[] { "email", "public_profile" };  
public async System.Threading.Tasks.Task LogIn() 
      { 
    LoginManager.LogInWithReadPermissionsAsync (permitions); 

       LoginManagerLoginResult result = await LogInWithReadPermissionsAsync(); 

       if (result.IsCancelled) 
       { 
        ServiceFactory.UserMessageService.ShowToast("Facebook login is canceled"); 
       } 
      } 

     private Task<LoginManagerLoginResult> LogInWithReadPermissionsAsync() 
      { 
       var tcs = new TaskCompletionSource<LoginManagerLoginResult>(); 
       LoginManager.LogInWithReadPermissions (permitions,null, (LoginManagerLoginResult result, NSError error) => 
       { 
        if(error.IsNotNull()) 
        { 
         tcs.SetException (new IosErrorException(error)); 
        } else 
        { 
         tcs.SetResult (result); 
        } 
       }); 

       return tcs.Task; 
      } 
fb giriş için ben içindeyim ve LogInWithReadPermissions()

ViewModel için parametre olarak iletin bakış örneğini oluşturdu çalıştı

Ancak başarısız olması, bu func'i çağırdığımda Viewmodel'den görüntü bilgisini geçmem gerekiyor mu? Görünüm örneğinden görünüm örneği nasıl geçmeli? Biri yardım edebilir mi?

Bu hizmet at başarısız

GÜNCELLEME: Herhangi bir hata vermeden (LoginManager.LogInWithReadPermissions...)

:

fonk LogInWithReadPermissionsAsync() satırı3. Sadece çöküyor. Facebook API sürümü: "Xamarin.Facebook.iOS" version = "4.13.1"

GÜNCELLEME kaldırıldı kullanılmayan kodu.

+0

Olay işleyicileri için değilse, "async void" konusunda çok dikkatli olmalısınız. İkinci olarak, tam olarak burada "başarısız" olan şeyi yüklemelisiniz. Bir istisna var mı? Sessizce başarısız mı? etc Ayrıca lütfen bir NuGet/Component/etc olup olmadığını kullandığınız tam FB API'sini gönderin –

+0

Sorumu gerekli bilgilerle güncelledim. – TheDeveloper

+0

Neler olup bittiğini göstermek için bir mcve' yükleyin: http://stackoverflow.com/help/mcve İkinci olarak, daha fazla çıktı almak için cihaz günlüklerinizi kontrol ettiniz mi? https://kb.xamarin.com/customer/portal/articles/1675684-where-can-i-find-my-version-information-and-logs#debug-logs-for-xamarin-apps –

cevap

1

Çözümü aldım.

kod Xamarin Facebook iOS SDK here belirtildiği gibi

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>facebook.com</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/>     
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <false/> 
     </dict> 
     <key>fbcdn.net</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <false/> 
     </dict> 
     <key>akamaihd.net</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <false/> 
     </dict> 
    </dict> 
</dict> 

If you're recompiling with iOS SDK 9.0, add the following to your application's plist if you're using a version of the SDK v4.5 or older: 

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>fbapi</string> 
    <string>fbapi20130214</string> 
    <string>fbapi20130410</string> 
    <string>fbapi20130702</string> 
    <string>fbapi20131010</string> 
    <string>fbapi20131219</string>  
    <string>fbapi20140410</string> 
    <string>fbapi20140116</string> 
    <string>fbapi20150313</string> 
    <string>fbapi20150629</string> 
    <string>fbauth</string> 
    <string>fbauth2</string> 
    <string>fb-messenger-api20140430</string> 
</array> 
If you're using Facebook.MessengerShareKit from versions older than the v4.6 release, also add: 

<string>fb-messenger-platform-20150128</string> 
<string>fb-messenger-platform-20150218</string> 
<string>fb-messenger-platform-20150305</string> 
If you're using v4.6.0 of the SDK, you only need to add: 

<key>LSApplicationQueriesSchemes</key> 
<array> 
     <string>fbapi</string> 
     <string>fb-messenger-api</string> 
     <string>fbauth2</string> 
     <string>fbshareextension</string> 
</array> 

ekleyerek Ben sadece 'Ağ Talepleri için beyaz liste Facebook Sunucular' için gerekli iyiydi.

+0

Orijinal yayında FBSign'ın ne yaptığını söyleyebilir misiniz? Görüntü denetleyicisini nasıl elde eder :) – LamonteCristo

+0

@LamonteCristo, LogInWithReadPermissions() işlevinde geçiş yapabilmem için rasgele bir viewcontroller oldu. Gerekli değil, kodu güncelledim. En son kodu kontrol edebilirsiniz. – TheDeveloper