ASP.NET MVC - 将数据发布到 Facebook
Posted
技术标签:
【中文标题】ASP.NET MVC - 将数据发布到 Facebook【英文标题】:ASP.NET MVC - Post data to Facebook 【发布时间】:2016-04-24 02:53:26 【问题描述】:在asp.net mvc5中使用graph api获取访问令牌后,我尝试将数据发布到facebook,但在获取访问令牌后丢失了要发布的数据。
这是我在视图中所做的事情
<a href='@Url.Action("PostFacebook", "SocialMedia")/?videoId=@Model.VideoSourceId'>
<img src='@Url.Content("~/Assests/layout/images/social/share-facebook.png")' style="height:28px" />
</a>
这是我在社交媒体控制器的 PostFacebook 操作中的内容。
public void PostFacebook(int? videoId)
string redirectUrl = Request.Url.GetLeftPart(UriPartial.Path);
if (Request["code"] == null)
string url = string.Format(
"https://graph.facebook.com/oauth/authorize?client_id=0&redirect_uri=1&scope=2",
FbClientId, redirectUrl, scope);
Response.Redirect(url);
else
redirectUrl = string.Format("0?code=1", redirectUrl, Request["code"]);
string accessToken = GetAccessToken(redirectUrl);
FacebookClient facebook = new FacebookClient(accessToken);
//get data about video here and set parameters
//MY PROBLEM LIES HERE, VideoId is null always so i can't get the values about my post from my database.
facebook.Post("/me/feed", parameters);
我明白为什么在我第二次调用时它为空,因为当我们重定向到 oauth/authorize?.. 我们退出该方法并丢失所有信息,当 facebook 将代码返回给我们的 redirect_url 时,我们不能取回 VideoId。
我配置的 redirect_url 是 SocialMedia/PostFacebook/
我很困惑如何将 videoId 发送到 Facebook oauth/authorize 端点并使用 CODE 或什至可能将其取回?如果没有,在这种情况下我必须使用哪些技术来持久化我的参数?
【问题讨论】:
【参考方案1】:我通过更改以下内容使其工作。
1) 我的 redirect_uri 是 http://localhost:53923/SocialMedia/Facebook/
我把它改成了http://localhost:53923/SocialMedia/Facebook/?videoId
,这对我来说很奇怪。 Facebook 现在自己插入 videoId。
2) 其次,我刚刚在
的代码中更新了我的重定向 uristring redirectUrl = Request.Url.GetLeftPart(UriPartial.Path);
到
string redirectUrl = Request.Url.AbsoluteUri
.
成功了!
【讨论】:
以上是关于ASP.NET MVC - 将数据发布到 Facebook的主要内容,如果未能解决你的问题,请参考以下文章
如何将 ASP.NET Identity 实现到一个空的 MVC 项目
如何将数据从表示层传递到业务逻辑层? (ASP.NET MVC 5)