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 ストア アプリで共有するための最適なパターンは、共有ソース コントラクトを使用することです。これにより、アプリは何を共有するかを選択できますが、ユーザーは共有する場所/方法 (たとえば、どのアプリと共有するか) を選択できます。

アプリ内で特定のプロバイダーへの共有を実装することのマイナス面は、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 に答える