xamarin / FacebookComponents

MIT License
88 stars 70 forks source link

Xamarin.Facebook.iOS Login Unsupported request #221

Open malau449 opened 3 years ago

malau449 commented 3 years ago

It is no longer possible for me to login. I get the message: "Unsupported request" when logging in with my email and password. i suppose this could be in relation to the iOS package to be 2 major version behind Facebooks iOS SDK (v.10 was not released). Are there any plans on when to bump iOS to the latest version? Or do you have a solution for the error message above?

vmtvv commented 3 years ago

Facebook team has faced the same error when reviewing my app three days ago.

dtaylorus commented 3 years ago

As a workaround, I was able to use the latest Facebook SDK for iOS as a native reference. Download the Facebook dynamic xcframework SDK from GitHub releases (https://github.com/facebook/facebook-ios-sdk/releases/) and reference it from your project. Here are the CoreKit references I've used in my csproj file:

    <NativeReference Include="FacebookSDK_Dynamic\FBSDKCoreKit_Basics.xcframework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
      <LinkerFlags>-ObjC</LinkerFlags>
    </NativeReference>
    <NativeReference Include="FacebookSDK_Dynamic\FBAEMKit.xcframework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
      <LinkerFlags>-ObjC</LinkerFlags>
    </NativeReference>
    <NativeReference Include="FacebookSDK_Dynamic\FBSDKCoreKit.xcframework">
      <Kind>Framework</Kind>
      <SmartLink>False</SmartLink>
      <LinkerFlags>-ObjC</LinkerFlags>
      <WeakFrameworks>Accelerate Accounts Social Security QuartzCore CoreGraphics UIKit Foundation AudioToolbox WebKit</WeakFrameworks>
    </NativeReference>

Now that you have the references, you need the C# wrapper code which you can get by installing the old Nuget package and using F12 from Visual Studio to copy and paste the decompiled code.

I've created a Gist of the files that implement the CoreKit API's I use at https://gist.github.com/dtaylorus/0468be7372ba517db09c1bbfa68a927a.

You may be able to add the Facebook Login native reference and API's in the same way.

malau449 commented 3 years ago

i made a workaround using a WebAuthenticator instead. for me the one that worked was Xamarin.Essentials.WebAuthenticator to receive the accessToken, and then manually fetch the user email through Facebooks Graph API

And I have been validated from Facebook again this morning

thisisthekap commented 3 years ago

Related to #223