해시 태그 검색을 사용하여 Instasharp 래퍼를 통해 Instagram 게시물을 가져 오려면 .net 콘솔 응용 프로그램을 사용하고 싶습니다.콘솔 응용 프로그램의 Instasharp
저는 C# .net 웹 양식을 광범위하게 사용하며 MVC 나 await 키워드 사용법에 익숙하지 않습니다. 아래의 코드 샘플은 실행되는 것처럼 보이지만 출력을 제공하지는 않습니다.
이 줄 :
var tagInfo = await tagApi.Get("soccer");
가 검색된 데이터 표시없이 호출 방법에 저를 돌려줍니다.
내가 여기서 잘못하고있는 것에 대해 통찰력을 줄 수있는 사람은 누구입니까?
public static async void GetInstagram(String tag, InstagramConfig config)
{
var instagramPosts = await LoadInstagramPosts(tag, config);
dynamic dyn = JsonConvert.DeserializeObject(instagramPosts.ToString());
foreach (var data in dyn.data)
{
Console.WriteLine("{0} - {1}", data.filter, data.images.standard_resolution.url);
}
}
public static async Task<TagResponse> LoadInstagramPosts(String hashTagTerm, InstagramConfig config)
{
var tagApi = new InstaSharp.Endpoints.Tags(config);
var tagInfo = await tagApi.Get("soccer");
}
EDITED 코드가 내 초기 문제를 해결 한 첫 번째 의견 뒤에 있습니다.
나는 가깝다고 느끼지만 뭔가가 여전히 누락되었습니다. 아래의 특정 질문을 참조하십시오 ...
나는 InstaSharp GitHub (https://github.com/InstaSharp/InstaSharp)의 문서에 코드를 기반으로합니다. GitHubs 예제는 MVC 애플리케이션을 기반으로하며, 광산은 MVC 프로젝트가 아니라 콘솔 애플리케이션입니다.
나는 아주 가까와서 다른 사람들이 내가이 문제를 해결하는 데 도움이 될 것이라고 생각합니다.
내 특정 질문 ... 1) OAuth 메소드에서 'code'매개 변수의 출처를 모르십니까 ?? 2) Instagram에서 필요한 콜백을 수행하는 방법 ??
var config = new InstaSharp.InstagramConfig(location.InstagramClientId, location.InstagramClientSecret, "http://localhost");
string instagramLoginLink = InstagramLogin(config);
GetInstagram("soccer", config, instagramLoginLink);
public static async void GetInstagram(String tag, InstagramConfig config, string code)
{
OAuthResponse oAuthResponse = await OAuth(code, config);
var instagramPosts = await LoadInstagramPosts(tag, config, oAuthResponse);
if(instagramPosts.Data != null)
{
dynamic dyn = JsonConvert.DeserializeObject(instagramPosts.Data.ToString());
foreach (var data in dyn.data)
{
Console.WriteLine("{0} - {1}", data.filter, data.images.standard_resolution.url);
}
}
}
public static string InstagramLogin(InstagramConfig config)
{
var scopes = new List<OAuth.Scope>();
scopes.Add(InstaSharp.OAuth.Scope.Likes);
scopes.Add(InstaSharp.OAuth.Scope.Comments);
string link = InstaSharp.OAuth.AuthLink(config.OAuthUri + "authorize", config.ClientId, config.RedirectUri, scopes, InstaSharp.OAuth.ResponseType.Code);
return link;
}
public static async Task<OAuthResponse> OAuth(string code, InstagramConfig config)
{
// add this code to the auth object
var auth = new OAuth(config);
// now we have to call back to instagram and include the code they gave us
// along with our client secret
return await auth.RequestToken(code);
}
public static async Task<TagResponse> LoadInstagramPosts(String hashTagTerm, InstagramConfig config, OAuthResponse OAuth)
{
var tagApi = new InstaSharp.Endpoints.Tags(config, OAuth);
return await tagApi.Get("soccer");
}
컴파일러가 코드에 대해 불평하고 있습니까? 'LoadInstagramPosts'는'Task'을 반환하지만 아무것도 반환하지 않습니다. Do return tagApi.Get ("Soccer"); ' –
Crowcoder
CrowCoder를 감사드립니다. 그 DID가 나를 호출하는 메소드로 리턴하는 것처럼 보입니다 ... 리턴 된 것은 무엇이든 실제 작업을하기 위해 비동기식 루틴을 벗어나야합니까? –
아니요, 뭔가 기다리고있을 때 평범한 동기 호출처럼 처리 할 수 있습니다. – Crowcoder