在跨平台应用程序中显示Facebook订阅源,无需登录

在跨平台应用程序中显示Facebook订阅源,无需登录,facebook,xamarin.forms,Facebook,Xamarin.forms,我是移动开发新手,所以我从Xamarin.Forms开始 我是该组织的一员,该组织希望我开发一个电话簿应用程序(已准备就绪),并在其中包含他们的Facebook页面,以便事件可以在应用程序中显示 我试着在网上搜索一些有不同选择的帮助,但是没有一个可以实现,因为 Facebook页面是由另一名成员使用其个人ID创建的 各种帖子建议使用APP ID、APP Secret和从中生成的访问令牌访问公共帖子 我如何为其他用户创建的facebook页面生成访问令牌并将其包含在我的应用程序中 我应该在Face

我是移动开发新手,所以我从Xamarin.Forms开始

我是该组织的一员,该组织希望我开发一个电话簿应用程序(已准备就绪),并在其中包含他们的Facebook页面,以便事件可以在应用程序中显示

我试着在网上搜索一些有不同选择的帮助,但是没有一个可以实现,因为

  • Facebook页面是由另一名成员使用其个人ID创建的
  • 各种帖子建议使用APP ID、APP Secret和从中生成的访问令牌访问公共帖子
  • 我如何为其他用户创建的facebook页面生成访问令牌并将其包含在我的应用程序中

    我应该在Facebook开发者控制台中进行哪些设置,以便任何使用我的移动应用程序的人都可以轻松地在应用程序中查看Facebook页面,并在点击任何图像或帖子时进入浏览器,以便登录Facebook并发布评论或喜欢该页面等

    请引导我

    阿米特·萨拉夫

    编辑

    CBroe

    是的,您需要一个包含必要代码并嵌入FB JS SDK的基本HTML文档

    这是我的HTML文件

    <HTML>
    <BODY>
    
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7&appId=<AppID>";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    
    <div id="fb-root"></div>
    <div class="fb-page" 
    data-href="https://www.facebook.com/AkolaIndustriesAssociation" 
    data-tabs="timeline" 
    data-small-header="true" 
    data-adapt-container-width="true" 
    data-adapt-container-height="true"
    data-hide-cover="false" 
    data-show-facepile="true">
    <blockquote cite="https://www.facebook.com/AkolaIndustriesAssociation" class="fb-xfbml-parse-ignore">
    <a href="https://www.facebook.com/AkolaIndustriesAssociation">Akola Industries Association</a></blockquote>
    </div>
    
    </BODY>
    </HTML>
    

    我在CBroe的帮助下解决了我的问题(参见对我问题的评论)

    如果有人需要,这里有一些步骤

  • 使用在Facebook上创建开发者帐户

  • 创建一个Facebook应用程序,并通过访问->应用程序评论->公开将其公开

  • 访问Facebook插件页面

  • 输入详细信息,然后单击“获取代码”。这里您将收到Java SDK代码和Facebook插件代码

  • 使用这些代码准备了一个简单的HTML文件(示例代码放在我问题的第一次编辑中)

  • 这些文件需要使用http://或https://协议(见注释)访问,您需要将这些页面放置在web服务器上,然后访问它(这里我使用的是由提供的免费web托管)

  • 将Webview添加到Xamarin.Forms内容页,并将其源设置为服务器上网页的url。(就我而言是这样)

  • 完成了

    它就像一个符咒

    感谢CBroe的大力帮助


    Amit Saraf

    如果您使用应用程序或页面访问令牌,那么您需要在服务器端进行API调用,因为这两种类型的令牌永远不应该在客户端代码中公开。除此之外,你实际上只能让用户在设备上登录到你的应用程序,这样你就可以使用他们的用户访问令牌。Facebook上有类似RSS提要的东西吗(我在一些旧帖子中读到)?如果是,我可以在我的应用程序中使用它们吗?&怎么做?不,这个功能已经被删除了。是的,Facebook已经开始唠叨用户登录,即使他们在不久前查看一个公共页面。我认为你无法解决这个问题。如果页面是公共的,则可能是另一种选择—它也可以显示页面的事件,并且不要求用户登录。此文档是通过
    http://
    还是
    https://
    调用的?否则,与SDK的URL相关的协议当然无法工作,因此您需要在代码中向URL添加协议。我不知道为什么,但它在Google Crome和IE及Apps WebView中不起作用。它工作起来很有魅力
    <WebView x:Name="Browser" WidthRequest="1000" HeightRequest="1000"
                            Navigating="webOnNavigating"
                            Navigated="webOnEndNavigating" />
    
     Browser.Source = new UrlWebViewSource { Url = "file:///android_asset/AIA.html" };