我正在使用Xamarin Forms并希望将Facebook集成到Android应用程序中。我想从https://www.facebook.com/HyundaiIndia
这样的网页中提取Feed我已经从Nuget安装了Xamarin.Facebook
。它没有FacebookClient
对象,如下所述:https://components.xamarin.com/gettingstarted/facebook-sdk
然后我找到了我包含的Xamarin.Facebook
和Xamarin.FacebookBolts
名称空间,但我仍然没有得到FacebookClient
。相反,我找到了Xamarin.Facebook.XAndroid.Facebook
并创建了一个实例:
Xamarin.Facebook.XAndroid.Facebook fb = new Xamarin.Facebook.XAndroid.Facebook(FacebookAppId);
但是这个对象没有GetTaskAsync
。如何在Xamarin中下拉Feed?
答案 0 :(得分:4)
我尝试按照您提到的文章时有同样的经历。 由Outercurve Foundation创建的组件(Facebook.dll版本6.2.1) 您需要引用Facebook.dll并将其包含在您的文件中,如下所示:
using Facebook;
不要把它与:
混淆using Xamarin.Facebook;
修改强>
我终于找到了一些时间来获得更完整的答案以及链接上的示例 没有指定如何获取AccessToken(在问题中链接的facebook-sdk组件页面示例中称为userToken)我发布了一个可能的解决方案。 这个适用于我,并不需要任何其他库或组件(但问题中已经提到的那个)。
using Xamarin.Auth;
using Facebook;
string FaceBookAppId = "YOUR_FACEBOOK_APP_ID";
string AccessToken;
string OauthTokenSecret;
string OauthConsumerKey;
string OauthConsumerSecret;
void GetFBTokens()
{
var auth = new OAuth2Authenticator(FaceBookAppId,
"",
new Uri("https://m.facebook.com/dialog/oauth/"),
new Uri("https://www.facebook.com/connect/login_success.html")
);
auth.Completed += (sender, eventArgs) =>
{
if (eventArgs.IsAuthenticated)
{
eventArgs.Account.Properties.TryGetValue("access_token", out AccessToken);
eventArgs.Account.Properties.TryGetValue("oauth_token_secret", out OauthTokenSecret);
eventArgs.Account.Properties.TryGetValue("oauth_consumer_key", out OauthConsumerKey);
eventArgs.Account.Properties.TryGetValue("oauth_consumer_secret", out OauthConsumerSecret);
}
};
}
//现在我们可以使用链接示例。
void PostToMyWall ()
{
FacebookClient fb = new FacebookClient (AccessToken);
string myMessage = "Hello from Xamarin";
fb.PostTaskAsync ("me/feed", new { message = myMessage }).ContinueWith (t => {
if (!t.IsFaulted) {
string message = "Great, your message has been posted to you wall!";
Console.WriteLine (message);
}
});
}
答案 1 :(得分:0)
有两个版本的Facebook SDK,一个是针对官方SDK的绑定,另一个是来自Outercurve Foundation。
您似乎正在使用这个:the "official" binding,请查看此链接上的文档。