2014-01-11 38 views
3

我試圖讓我的手機遊戲邀請來自Facebook的朋友,但我無法。我使用的Facebook C#SDK的Windows 8(希望移植時準備WP8,Android和iOS),但問題是我感到困惑的Facebook的API paremeters:facebook用戶可以向用戶請求W8/WP8 c#sdk嗎?

這是我的代碼:

var fb = new FacebookClient (accessToken); 
dynamic parameters = new ExpandoObject(); 
parameters.appId = facebookAppId; 
parameters.message = "This is a test!"; 
parameters.to="friendID1,friendID2,..."; 

string request=String.Format ("/me/apprequests"); 
dynamic result = await fb.PostTaskAsync (request, parameters); 

當我使用這段代碼時,Post任務可以正確完成,但是對「我」用戶(檢查結果變量並查看Facebook)會收到該邀請。 「to」字段似乎被忽略,「我」是唯一一個接收請求的人。

如果我使用的/我/ apprequests,然後我收到以下錯誤

string request=String.Format ("/{0}/apprequests",FRIEND_ID); 

代替:

OAuthException 「(#2)無法創建任何應用程序的要求」,

我在某些地方看過訪問令牌必須是App Token,但文檔說它只能在服務器正在執行這些請求時使用,我想要的是用戶到用戶的請求,而不是應用程序用戶請求。

到目前爲止,我已經看到可以通過對話框請求獲取它在Android和iOS中,但我沒有在C#SDK中找到它們,所以我試圖手動創建apprequest,但沒有運氣。

是否有可能使這個工作與Windows Phone 8或Windows 8?怎麼樣?

感謝, 珏

回答

2

是的,它是可能的。不幸的是,你不能通過SDK來完成它,因爲Facebook不允許你以編程方式發送請求。它必須通過對話框請求框/彈出來完成。

因此,在嘗試使用以下解決方案之前,請確保用戶已登錄。通過使用LoginAsync方法獲取Facebook訪問令牌後,請按照下列步驟操作。

  1. 在啓用腳本的xaml中創建一個WebBrowser控件。

<phone:WebBrowser Visibility="Collapsed" IsScriptEnabled="True" Name="FbBrowser"></phone:WebBrowser>

  1. 現在,在後面的代碼,創建要在CSV格式如 「ID1,ID2,ID3」 邀請用戶的Facebook的ID的字符串。

  2. 瀏覽網頁瀏覽器下面的頁面並訂閱導航事件: "https://m.facebook.com/dialog/apprequests?" + "message=your_message&app_id=" + "your_facebook_appid" + "&redirect_uri=https://m.facebook.com&to=" + user_facebook_ids_CSV + "&sdk=2&display=touch"

FbBrowser.Visibility = Visibility.Visible; FbBrowser.Navigating += FbBrowser_Navigating; FbBrowser.Navigate(url1);

  1. 您可以處理在導航網頁的成功和失敗響應事件。

private void FbBrowser_Navigating(object sender, NavigatingEventArgs e) { if (e.Uri.ToString().StartsWith("https://m.facebook.com/?error_code") || e.Uri.ToString().StartsWith("https://m.facebook.com/?request")) { FbBrowser.Visibility = Visibility.Collapsed; FbBrowser.Navigate(new Uri("about:blank"));
} }

相關問題