1

我正在尝试做一个共享链接的 Windows 8 应用程序...

我已经有一个访问令牌。如何打开提要对话框?

我正在使用以下代码:

    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)

建议?

4

2 回答 2

2

在 Windows 应用商店应用程序中共享的最佳模式是使用Share Source 合同。这允许您的应用程序选择要共享的内容,同时让用户选择在何处/如何共享它(例如 - 与哪个应用程序共享)。

在您的应用程序中实现与特定提供商共享的缺点是 MySpace 现象。如果您正在编写的社交网络没有超过您的应用程序,会发生什么?现在,您的应用程序中已经有了需要维护的代码,但这些代码对您的用户的价值有限。出于同样的原因,如果出现了新的社交网络,您将希望将代码添加到您的应用程序以共享给它。

使用共享源合约通过允许用户选择接收共享数据的应用程序来解决这两个问题。如果他们希望与 Facebook 分享,他们可以选择支持该网络的应用程序。如果他们更喜欢 Twitter,他们可以分享。

除非有一些真正令人信服的理由不这样做,否则我建议您查看 Share Source 合同。您可以编写更少的代码,并为用户提供更大的灵活性,并且您的应用程序将按照 Windows 应用商店应用程序的用户所期望的方式运行。

于 2013-01-16T04:00:15.563 回答
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 行,似乎可以显示对话框。

希望能帮助到你。

于 2013-02-07T05:33:15.113 回答