首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin FacebookClient

Xamarin FacebookClient
EN

Stack Overflow用户
提问于 2015-01-30 22:12:19
回答 2查看 1.1K关注 0票数 4

我正在使用Xamarin表单,并希望在android应用程序中集成Facebook。我想从像https://www.facebook.com/HyundaiIndia这样的页面中提取提要

我已经从Nuget安装了Xamarin.Facebook。它没有这里提到的FacebookClient对象:https://components.xamarin.com/gettingstarted/facebook-sdk

然后我找到了我包含的Xamarin.FacebookXamarin.FacebookBolts名称空间,但我仍然没有获得FacebookClient。相反,我找到了Xamarin.Facebook.XAndroid.Facebook并创建了一个实例:

代码语言:javascript
复制
Xamarin.Facebook.XAndroid.Facebook fb = new Xamarin.Facebook.XAndroid.Facebook(FacebookAppId);

但是这个对象没有GetTaskAsync。如何在Xamarin中下载提要?

EN

回答 2

Stack Overflow用户

发布于 2015-04-09 17:17:23

我在阅读你提到的文章时也有过同样的经历。由Outercurve基金会(Facebook.dll版本6.2.1)创建的组件需要您引用Facebook.dll,并将其包含在文件中,如下所示:

代码语言:javascript
复制
using Facebook;

不要将其与以下内容混淆:

代码语言:javascript
复制
using Xamarin.Facebook;

编辑

我终于找到了一个更完整的答案,由于链接上的示例没有指定如何获取AccessToken (在问题中链接的facebook-sdk组件页面示例中称为userToken ),因此我发布了一个可能的解决方案。这个方法适用于我,并且不需要任何其他库或组件(除了问题中已经提到的那个)。

代码语言:javascript
复制
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);
        }
    };
}

//现在我们可以使用链接的示例。

代码语言:javascript
复制
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);
        }
    });
} 
票数 4
EN

Stack Overflow用户

发布于 2015-04-26 01:43:37

Facebook SDK有两个版本,一个是官方SDK的绑定版本,另一个是来自Outercurve基金会的版本。

看起来您正在使用the "official" binding,因此请查看此链接上的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28237725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档