我想构建一个类似于 nametest 或 Meaww 的 facebook 应用程序,并且几乎成功地让我的 API 调用 Facebook Graph API 并从 facebook 返回数据。让我感到困惑的是上述 Web 应用程序的 UI。当您在 Meaww 或 Nametests 上完成测试时,结果以图像 (Jpeg) 格式呈现给用户。我只是不知道他们如何设法使用所有 CSS 样式等将 HTML 动态转换为图像,以及他们如何将其作为图像返回给用户?是否可以在 ASP.NET MVC 中将这种情况付诸实践?如果是,那么我需要一个提示来做到这一点。
下面是 Meaww 作为测试结果生成的图像。
编辑:
更具体地说...我的public async Task<ActionResult> FB_Analyse()
控制器中有一个动作,它通过 Graph API 调用从 facebook 获取数据,然后将数据值传递给模型,然后在动作结束时返回如下视图:
public async Task<ActionResult> FB_Analyse()
{
var access_token = HttpContext.Items["access_token"].ToString();
if (!string.IsNullOrEmpty(access_token))
{
var appsecret_proof = access_token.GenerateAppSecretProof();
var fb = new FacebookClient(access_token);
#region FacebookUser Name and Picture plus other Info
//Get current user's profile
dynamic myInfo = await fb.GetTaskAsync("me?fields=first_name,last_name,link,locale,email,name,birthday,gender,location,age_range,about".GraphAPICall(appsecret_proof));
dynamic myinfojson = JsonConvert.DeserializeObject(myInfo.ToString());
ViewBag.UserName = myinfojson.name;
ViewBag.UserGender = myinfojson.gender;
//get current picture
dynamic profileImgResult = await fb.GetTaskAsync("{0}/picture?width=200&height=200&redirect=false".GraphAPICall((string)myInfo.id, appsecret_proof));
ViewBag.ProfilePictureURL = profileImgResult.data.url;
#endregion
dynamic myFeed = await fb.GetTaskAsync(
("me/feed?fields=likes{{name,pic_large}}")
.GraphAPICall(appsecret_proof));
string result = myFeed.ToString();
var jsonResult = JsonConvert.DeserializeObject<RootObject>(result);
var likes = new List<Datum2>();
foreach (var likeitem in jsonResult.data)
{
if (likeitem.likes != null)
{
foreach (var feedlikeitem in likeitem.likes.data)
{
likes.Add(feedlikeitem);
}
}
}
return view(likes);
}
然后在我看来,我有这个简单的<div>
标签,其图像如下:
<div class="imageWrapper" style="position: relative">
<img class="girl img-responsive" src="~/images/TestPictures/mHiDMsL.jpg" style="position: relative; z-index: 1;" />
<img src="@ViewBag.Picture" alt=.. width="100" height="100" style="position: absolute;left:80px; top: 80px;z-index: 10;" />
<img src="@ViewBag.ProfilePictureURL" alt=.. width="200" height="200" style="position: absolute;left:300px; top: 160px;z-index: 11;" />
</div>
如您所见,我有三个不同的<img>
标签。一张是另外两张图片的背景,另外两张是一张 Facebook 用户图片,第二张是 Facebook 用户朋友的图片,它们都放在背景图片的顶部。我要达到的目标是晴空万里。我想将这三张图片合二为一,然后将其作为一张图片展示给用户。
请帮助我迷路了。