我正在探索在ASP.NET MVC应用程序中使用Edge.js在服务器端渲染Angular 2的可能性.
我知道Angular Universal Starter Kit有这个等式的一部分:https://github.com/alexpods/angular2-universal-starter
但是,它使用的是Node.js服务器.我宁愿不在现有的IIS服务器上添加一个Node.js服务器作为额外的Web服务器.我的想法是我可以使用Edge.js在服务器端执行Angular的渲染(即,运行必要的JavaScript来生成标记).
我是Angular 2的新手,所以为我准备一个例子并运行起来并非易事.基于这个封闭的问题,我想说目前还没有努力增加对Edge.js的支持(尽管它正在被考虑):https://github.com/angular/universal/issues/40
有没有人知道是否可以使用ASP.NET MVC应用程序中的Edge.js在服务器端渲染Angular?
顺便说一下,我坚持使用.NET 4.5.2(Umbraco需要它),所以我无法转移到.NET Core并使用它:https://github.com/MarkPieszak/aspnetcore-angular2-普遍
我正在尝试在网站上为客户显示图像库.这些图像应该自动从他们的Instagram帐户中提取.简单吧?好吧,它曾经是......
我不能使用Instagram API,因为它已被弃用:https://www.instagram.com/developer/
所以相反,我正在尝试使用Instagram Graph API来获取该帐户的最新图像:https://developers.facebook.com/docs/instagram-api/reference/user/media#get-media
跳到最低版本的底部,或继续阅读长版本.
麻烦的是,我很难理解如何获得与此API交互的凭据.我可以说,我需要先创建四个单独的东西:
我甚至不确定我是否需要创建所有这些东西(尤其是应用程序),但这就是我现在所处的位置.我试图根据这个页面找出我需要的权限:https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens
我认为我需要一个"应用程序访问令牌",根据我的理解,我可以使用应用程序ID和应用程序秘密组合代替应用程序访问令牌,这实际上似乎有点工作.
然后我尝试根据链接的Facebook页面获取我需要的Instagram ID,我使用此调用(使用真实的Facebook帐户ID和正确的令牌):https://graph.facebook.com/some-facebook- ?帐户ID-此栏= instagram_business_account&=的access_token的东西,在这里|和这里
对该电话的回应是:
{
"error": {
"message": "(#10) To use 'Page Public Content Access', your use of this endpoint must be reviewed and approved by Facebook. To submit this 'Page Public Content Access' feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review.",
"type": "OAuthException",
"code": 10,
"fbtrace_id": "[redacted]" …
Run Code Online (Sandbox Code Playgroud) 在我不深入讨论细节之前,我要完成的高级工作是使用JavaScript加密一些数据,将其发送到Web服务器,然后使用C#解密该加密的数据。我遇到的问题是解密C#中的数据。
我正在像这样用JavaScript加密一些数据(我删除了多余的代码):
// https://github.com/diafygi/webcrypto-examples#rsa-oaep---encrypt
window.crypto.subtle.encrypt(
{
name: "RSA-OAEP"
},
publicKey,
data
)
.then(function (encrypted) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
我确认可以像这样用JavaScript对其进行解密(请注意,我实际上并不想这样做,但是我这样做是为了证明可以解密数据):
function decryptValue () {
// Base64 decode the encrypted data for the value "Bob".
var data = base64Decode("CthOUMzRdtSwo+4twgtjCA674G3UosWypUZv5E7uxG7GqYPiIJ+E+Uq7vbElp/bahB1fJrgq1qbdMrUZnSypVqBwYnccSxwablO15OOXl9Rn1e7w9V9fuMxtUqvhn+YZezk1623Qd7f5XTYjf6POwixtrgfZtdA+qh00ktKiVBpQKNG/bxhV94fK9+hb+qnzPmXilr9QF5rSQTd4hYHmYcR2ljVCDDZMV3tCVUTecWjS5HbOA1254ve/q3ulBLoPQTE58g7FwDQUZnd7XBdRSwYnrBWTJh8nmJ0PDfn+mCTGEI86S7HtoFYsE+Hezd24Z523phGEVrdMC9Ob1LlXEA==");
// Get private key.
var keyPromise = importPrivateKey();
return keyPromise.then(function (privateKey) {
// Decrypt the value.
return window.crypto.subtle.decrypt(
{
name: "RSA-OAEP"
},
privateKey,
data
)
.then(function (decrypted) {
// Log the decrypted value to the console.
console.log(arrayBufferToString(decrypted));
});
});
}
Run Code Online (Sandbox Code Playgroud)
为简单起见,该代码示例正在解密先前加密的“ Bob”值。这很好。
当我尝试解密C#中的值时,会发生问题: …