从 wp8 应用程序在 facebook 上分享消息时出现权限屏幕
Posted
技术标签:
【中文标题】从 wp8 应用程序在 facebook 上分享消息时出现权限屏幕【英文标题】:Permission screen appears when share a message on facebook from wp8 app 【发布时间】:2014-06-13 10:36:38 【问题描述】:我需要从 wp8 在 facebook 上分享一条消息。我附上了我的 Main.xaml 屏幕截图。
当点击分享按钮时,首先登录Facebook,然后请求应用程序的权限。我使用了以下代码。
private FacebookSession session;
private async Task Authenticate()
string message = String.Empty;
try
session = await App.FacebookSessionClient.LoginAsync("user_about_me,publish_actions,read_stream");
App.AccessToken = session.AccessToken;
App.FacebookId = session.FacebookId;
Dispatcher.BeginInvoke(() => NavigationService.Navigate(new Uri("/Share/LandingPage.xaml", UriKind.Relative)));
catch (InvalidOperationException e)
message = "Login failed! Exception details: " + e.Message;
MessageBox.Show(message);
然后在 LandingPage.xaml 的 Loading 方法中,使用如下代码发布消息。
private async void LandingPage_Loaded(object sender, RoutedEventArgs e)
FacebookClient client = new FacebookClient(App.AccessToken);
var parameters = new Dictionary<string, object>();
parameters.Add("message", "First test post using Facebook login");
await client.PostTaskAsync("me/feed", parameters);
当我运行应用程序时,成功登录 Facebook,但权限屏幕显示如下。
点击确定。然后发生错误。
(OAuthException - #200) (#200) The user hasn't authorized the application to perform this action
我尽力解决这个问题,但我失败了。如果有人有解决这个问题的想法。请帮帮我
谢谢。
【问题讨论】:
【参考方案1】:我认为您缺少访问令牌请求中的请求代码。
dynamic result = facebookClient.Get("oauth/access_token", new
client_id = appId,
client_secret = appSecret,
grant_type = "authorization_code"
redirect_uri = Request.Url.AbsoluteUri,
code = Request["code"]
);
【讨论】:
感谢您的回复。我使用以下代码在 Authenticate() 方法中获得了访问令牌。session = await App.FacebookSessionClient.LoginAsync("user_about_me,publish_actions,read_stream"); App.AccessToken = session.AccessToken;
不正确吗?以上是关于从 wp8 应用程序在 facebook 上分享消息时出现权限屏幕的主要内容,如果未能解决你的问题,请参考以下文章
Facebook.Client WP8 使用哪个 Facebook API 版本?
使用 sharekit 从 iOS 应用程序在 Facebook 上共享文本