【发布时间】:2015-08-16 10:17:01
【问题描述】:
我正在尝试与 Instagram API 通信,并希望按照下面给出的链接使用签名请求与 API 进行安全通信
https://instagram.com/developer/secure-api-requests/
在默认页面,我只需获取客户端密钥、客户端密码和重定向 URL 等详细信息并通过 Instagram 进行身份验证。
身份验证后,在重定向 URL 处,以下是我的代码
//To Get Access Token
var json = "";
NameValueCollection parameters = new NameValueCollection();
parameters.Add("client_id", ConfigurationManager.AppSettings["instagram.clientid"].ToString());
parameters.Add("client_secret", ConfigurationManager.AppSettings["instagram.clientsecret"].ToString());
parameters.Add("grant_type", "authorization_code");
parameters.Add("redirect_uri", ConfigurationManager.AppSettings["instagram.redirecturi"].ToString());
parameters.Add("code", code);
WebClient client = new WebClient();
var result = client.UploadValues("https://api.instagram.com/oauth/access_token", "POST", parameters);
var response = System.Text.Encoding.Default.GetString(result);
// deserializing nested JSON string to object
var jsResult = (JObject)JsonConvert.DeserializeObject(response);
string accessToken = (string)jsResult["access_token"];
int id = (int)jsResult["user"]["id"];
Page.ClientScript.RegisterStartupScript(this.GetType(), "GetToken", "<script>var instagramaccessid=\"" + @"" + id + "" + "\"; var instagramaccesstoken=\"" + @"" + accessToken + "" + "\";</script>");
获得访问令牌后,假设我从 instagram 获得了热门照片。以下是保存热门照片的 div
<div style="clear:both;"></div>
<div>
<h1>
Popular Pictures</h1>
<div id="PopularPhotosDiv">
<ul id="photosUL1">
</ul>
</div>
</div>
然后我用下面的函数来填充热门照片的div
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
GetPopularPhotos();
});
function GetPopularPhotos() {
$("#photosUL1").html("");
$.ajax({
type: "GET",
async: true,
contentType: "application/json; charset=utf-8",
//Most popular photos
url: "https://api.instagram.com/v1/media/popular?access_token=" + instagramaccesstoken,
dataType: "jsonp",
cache: false,
beforeSend: function () {
$("#loading").show();
},
success: function (data)
{
$("#loading").hide();
if (data == "") {
$("#PopularPhotosDiv").hide();
} else {
$("#PopularPhotosDiv").show();
for (var i = 0; i < data["data"].length; i++) {
$("#photosUL1").append("<li style='float:left;list-style:none;'><a target='_blank' href='" + data.data[i].link + "'><img src='" + data.data[i].images.thumbnail.url + "'></img></a></li>");
}
}
}
});
}
此代码运行良好,我只想将其作为签名请求发送。
任何帮助将不胜感激。
【问题讨论】:
-
有很多可用的库,例如:github.com/InstaSharp/InstaSharp/blob/master/src/InstaSharp/… - 您在解释那里的“示例”时遇到问题吗?
-
您尝试过 InstaSharp 吗?
标签: c# .net instagram instagram-api