Javascript 我将如何在用户墙上发布扩展此示例的帖子?

Javascript 我将如何在用户墙上发布扩展此示例的帖子?,javascript,facebook,cordova,oauth,Javascript,Facebook,Cordova,Oauth,我正在用phonegap、adobe build制作一个应用程序,并使用facebook验证这段代码 我希望通过某种形式的回调来处理“成功”登录,并在用户的墙上发布帖子 <script type="text/javascript"> var my_client_id = "133914256793487", // YOUR APP ID my_secret = "862f10f883f8d91617b77b4b143abc8d", // YOUR

我正在用phonegap、adobe build制作一个应用程序,并使用facebook验证这段代码

我希望通过某种形式的回调来处理“成功”登录,并在用户的墙上发布帖子

       <script type="text/javascript">
       var my_client_id = "133914256793487", // YOUR APP ID
    my_secret = "862f10f883f8d91617b77b4b143abc8d", // 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
         alert("we have begun");
         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("https://www.facebook.com/connect/login_success.html") >= 0 ) {

            //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");
                }
            }); 
        }
    }
     }  
       </script>
        <script type="text/javascript">
           Facebook.init();
            </script>

var my_client_id=“13391426793487”//您的应用程序id
my_secret=“862f10f883f8d91617b77b4b143abc8d”//您的应用程序密码
我的\u重定向\u uri=”https://www.facebook.com/connect/login_success.html“,//留下这个
my_type=“user\u agent”,my_display=“touch”//留下这个
var facebook_token=“fbToken”//我们的代币保管人
var-ref//应用程序内浏览器参考
//脸谱网
var={
init:function(){
//开始授权
警惕(“我们已经开始”);
var\u url=”https://www.facebook.com/dialog/oauth?";
授权\u url+=“客户机\u id=”+我的客户机\u id;
authorize_url+=”&redirect_uri=“+my_redirect_uri;
authorize_url+=”&display=“+my_display;
授权\u url+=“&scope=发布\u流”;
//使用链接调用应用程序浏览器
ref=window.open(authorize_url,'u blank','location=no');
参考addEventListener('loadstart',函数(事件){
Facebook.facebookLocChanged(event.url);
});
} , 
facebookLocChanged:功能(loc){
如果(位置索引)https://www.facebook.com/connect/login_success.html") >= 0 ) {
//关闭应用浏览器并导航到索引
参考关闭();
//这意味着要在服务器端完成,以保护客户端机密
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]”);
log('CODE_URL::'+CODE URL);
$.ajax({
url:codeUrl,
数据:{},
键入:“POST”,
async:false,
cache:false,
成功:功能(数据、状态){
//我们把代币存放在这里
localStorage.setItem(facebook_令牌,data.split('=')[1].split('&')[0]);
},
错误:函数(){
警报(“发生未知错误”);
}
}); 
}
}
}  
Facebook.init();
有人能建议如何适当地扩展这个例子吗?在哪里可以找到API来帮助我自己?目前,它成功地要求用户登录-facebook弹出-我成功接受,然后它成功返回-并显示一条红色消息,表示用户应安全地保留此URL

干杯


Andy

我知道更改代码的整个结构是一项艰巨的任务,但我强烈建议使用。由于您正在使用build,您还可以轻松地从build集成创建

我强烈建议您查看以下两个文件,它们位于:和的
phonegap-facebook-plugin/example/HackBook
文件夹中

当使用JavaScriptFBAPI时,您可以指定回调函数作为第一个参数,如
FB.login(函数(响应){…})您可以在中找到一个示例

auth.js的第25行显示了一个调用FB API的示例,使用以下代码
FB.API('/me'.
)。当此代码请求有关登录用户的信息时,您可以使用
FB.API()
进行任何javascript API调用,您可以了解这一点(参见第四个示例)


查看代码,看看它是如何工作的/它是如何实现的,如果您有任何问题,请告诉我:)

嘿,我确实想使用它,但遇到了困难。也许你可以看看我的相关帖子:你用的是什么版本的cordova?您是在测试二进制应用程序还是仅仅测试未编译的代码?使用phonegap 2.3.0版,并使用phonegap adobe build构建的二进制应用程序进行测试-如果没有二进制代码,我将如何进行测试!