【问题标题】:Is there any Facebook plugin for phonegap 2.7.0? [closed]phonegap 2.7.0 有 Facebook 插件吗? [关闭]
【发布时间】:2013-05-10 17:29:51
【问题描述】:

Phonegap 2.7.0 有 Facebook 插件吗?

当我们尝试以下方法时,我们最终会在 Phonegap 2.7.0 上遇到已弃用的错误。

https://github.com/phonegap/phonegap-facebook-plugin/blob/master/README.md

我们用 Google 搜索时找不到任何东西。

谢谢,

席德

【问题讨论】:

  • @Sid-Sid 我已经使用 PhoneGap 2.7.0 应用了类似的插件。它对我有用。可能是你忘记了在你的应用程序中正确应用插件的一些步骤。再一步一步去您在问题中提供的链接。

标签: ios facebook cordova mobile


【解决方案1】:

我建议您使用phonegap 附带的inappbrowser 插件来执行此操作.. 示例如下所示。 在下面的xxx处填写您的相关信息

var my_client_id = "xxxxxx", // YOUR APP ID
    my_secret = "xxxxxxxxx", // YOUR APP SECRET 
    my_redirect_uri = "https://www.facebook.com/connect/login_success.html", // LEAVE THIS
    my_type ="user_agent", my_display = "touch"; // LEAVE THIS

var facebook_token = "fbToken"; // OUR TOKEN KEEPER
var ref; //IN APP BROWSER REFERENCE

// FACEBOOK
var Facebook = {
    init:function(){
         // Begin Authorization
         var authorize_url = "https://www.facebook.com/dialog/oauth?";
         authorize_url += "client_id=" + my_client_id;
         authorize_url += "&redirect_uri=" + my_redirect_uri;
         authorize_url += "&display=" + my_display;
         authorize_url += "&scope=publish_stream";

             //CALL IN APP BROWSER WITH THE LINK
         ref = window.open(authorize_url, '_blank', 'location=no');

         ref.addEventListener('loadstart', function(event){

             Facebook.facebookLocChanged(event.url);

          });

    },
    facebookLocChanged:function(loc){

        if (loc.indexOf("code=") >= 1  ) {

            //CLOSE INAPPBROWSER AND NAVIGATE TO INDEX
            ref.close();

            //THIS IS MEANT TO BE DONE ON SERVER SIDE TO PROTECT CLIENT SECRET
            var codeUrl = 'https://graph.facebook.com/oauth/access_token?client_id='+my_client_id+'&client_secret='+my_secret+'&redirect_uri='+my_redirect_uri+'&code='+loc.split("=")[1];
            console.log('CODE_URL::' + codeUrl);
            $.ajax({
                url: codeUrl,
                data: {},
                type: 'POST',
                async: false,
                cache: false,
                success: function(data, status){
                    //WE STORE THE TOKEN HERE
                    localStorage.setItem(facebook_token, data.split('=')[1].split('&')[0]);
                    },
                error: function(){
                    alert("Unknown error Occured");
                }
            }); 
        }
    }

我会添加更多注销和发布到墙上等功能。 您可以在 inappbrowser 上找到文档here

【讨论】:

  • 鉴于在 Android 上获取 PhoneGap 应用程序的源代码是可能的(甚至可能很容易?),是否担心您的 Facebook 应用程序帐户的密钥包含在代码中?
  • 你可以看到上面的评论,应该在使用app secret的服务器端完成。
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 2013-09-10
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
相关资源
最近更新 更多