2013-05-11 21 views
0

我正在用phonegap,adobe構建應用程序,並使用這個代碼片段進行身份驗證。我如何在擴展此示例的用戶牆上發佈帖子?

我正在尋找處理'成功'登錄與某種形式的回調,我想,並在用戶的牆上發表一篇文章。

 <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> 

任何人都可以建議如何適當地擴展這個例子 - 我在哪裏可以找到API來幫助自己?目前,它成功地要求用戶登錄 - Facebook彈出 - 我成功接受,然後它返回與成功 - 紅色的消息說,用戶應該保留這個URL安全。

乾杯,

安迪

回答

0

我知道,改變你的代碼的整體結構是一個有點艱鉅的任務,但我強烈建議使用PhoneGap Facebook Plugin。而且,由於您使用的是Build,因此您還可以輕鬆集成Build中的Facebook Connect plugin

我強烈建議您查看PhoneGap Facebook plugin repositoryphonegap-facebook-plugin/example/HackBook文件夾中發現的以下兩個文件:index.htmljs/auth.js

使用javascript FB Api時,您可以指定回調函數作爲第一個參數,如FB.login(function(response) { ... });您可以在docs中找到示例。

auth.js的第25行顯示了使用以下代碼FB.api('/me' ...調用FB API的示例。雖然此代碼請求有關登錄用戶的信息,但您可以通過FB.api()進行任何JavaScript API調用,您可以從中瞭解有關here(請參見第四個示例)。

查看代碼,看看它是如何工作的/它是如何實現的,讓我知道如果您有任何疑問:)

+0

嘿嘿,我其實想使用 - 但陷入困境。也許你可以把你的眼光轉向我的相關帖子:http://facebook.stackoverflow.com/questions/16474374/facebookconnect-plugin-with-phonegap-adobe-build-not-working – RenegadeAndy 2013-05-11 07:21:27

+0

你使用的是什麼版本的cordova?並且你在測試二進制應用程序還是僅僅是未構建的代碼? – asifrc 2013-05-11 07:27:36

+0

使用phonegap版本2.3.0並使用phonegap adobe構建的二進制應用程序進行測試 - 如何在沒有二進制文件的情況下測試! – RenegadeAndy 2013-05-11 17:52:12

相關問題