1

我試圖做一個共享鏈接的Windows 8應用程序...Windows 8的Facebook Feed對話框應用程序

我已經有一個訪問令牌。 如何打開Feed對話框?

我使用如下因素代碼:

var facebookURL = 
    "https://www.facebook.com/dialog/feed" + 
    "?display=popup" + 
    "&app_id=" + FBI.appID + 
    "&access_token=" + FBI.auth.getAccessToken() + 
    "&link=http://apps.microsoft.com/windows/app/archery-master/172c7273-10a8-4519-8a66-68ec4dae12f1" + 
    "&picture=http://wscont1.apps.microsoft.com/winstore/1x/0a119429-8795-4e0b-9f1a-d55bb5e8c2b1/Icon.70730.png" + 
    "&name=Archery%20Master" + 
    "&caption=I%20have%20a%20new%20best%20score" + 
    "&description=My%20best%20score%20was%20300%20points" + 
    "&redirect_uri=" + FBI.auth.callbackURL; 

var startURI = new Windows.Foundation.Uri(facebookURL); 
var endURI = new Windows.Foundation.Uri(FBI.auth.callbackURL); 

Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync(
    Windows.Security.Authentication.Web.WebAuthenticationOptions.dafault, startURI, endURI) 
    .done(function (result) { 
     switch (result.responseStatus) { 
      case Windows.Security.Authentication.Web.WebAuthenticationStatus.errorHttp: 

       break; 
      case Windows.Security.Authentication.Web.WebAuthenticationStatus.success: 

       break; 
      default: 

       break; 
     } 

    }, function (err) { 

    });        

但是,我有如下因素的錯誤:

API Error Code: 110

API Error Description: Invalid user id

Error Message: Missing user cookie (to validate session user)

建議嗎?

回答

2

Windows Store應用程序共享的最佳模式是使用Share Source contract。這可讓您的應用選擇要共享的內容,同時讓用戶選擇共享的位置/方式(例如 - 要與哪個應用共享)。

在您的應用中實現與特定提供商共享的缺點是MySpace現象。如果您所編碼的社交網絡沒有超過您的應用,會發生什麼情況?您現在已經在您的應用中獲得了需要維護的代碼,但這對您的用戶來說價值有限。同樣的道理,如果出現新的社交網絡,您就需要將代碼添加到您的應用程序中以與其共享。

使用共享源合同通過允許用戶選擇接收共享數據的應用程序解決了這兩個問題。如果他們希望與Facebook分享,他們可以選擇支持該網絡的應用。如果他們喜歡Twitter,他們可以分享。

除非有一些非常令人信服的理由,否則我會建議查看共享源合同。您可以編寫更少的代碼,併爲用戶提供更多的靈活性,並且您的應用程序將按照Windows應用商店應用程序的用戶期望的方式行事。

+0

謝謝你的回答,但即時通訊已經使用Facebook的分數API作爲我的後端,所以,我需要用戶身份驗證分享他的分數和下載朋友的分數。如果我使用共享源合同,我將擁有兩個不同的用戶界面...我將在魅力欄中設置此共享源合同,但是我想要的是與Facebook更連接的體驗。通過Share Sorce合同,我無法設置我在facebook對話框中的所有Facebook參數... –

+0

您是否正在從MSDN上的WebAuthenticationBroker示例(http://code.msdn.microsoft.com/windowsapps/Web-Authentication -d0485122)?以上哪些代碼導致了您所看到的錯誤? – devhammer

+0

示例只是獲取AccessToken,它工作正常。我想要的是打開另一個窗口(登錄後),如登錄窗口打開提要對話框。當我打開這個新窗口(使用提要對話框地址)窗口內的頁面顯示此錯誤(Facebook發送此錯誤)。我認爲對話窗口不處理會話/ cookies,即時通訊尋找一種方法來做到這一點 –

1

嘗試刪除行access_token。

var facebookURL = 
"https://www.facebook.com/dialog/feed" + 
"?display=popup" + 
"&app_id=" + FBI.appID + 
//"&access_token=" + FBI.auth.getAccessToken() + 
"&link=http://apps.microsoft.com/windows/app/archery-master/172c7273-10a8-4519-8a66-68ec4dae12f1" + 
"&picture=http://wscont1.apps.microsoft.com/winstore/1x/0a119429-8795-4e0b-9f1a-d55bb5e8c2b1/Icon.70730.png" + 
"&name=Archery%20Master" + 
"&caption=I%20have%20a%20new%20best%20score" + 
"&description=My%20best%20score%20was%20300%20points" + 
"&redirect_uri=" + FBI.auth.callbackURL; 

我試過你的代碼,沒有access_token行,它似乎能夠顯示對話框。

希望它有幫助。

+0

你是否嘗試過在Windows 8 metro風格的應用程序?因爲這適用於瀏覽器,但不適用於應用程序... –

相關問題