3

ハッシュタグ検索を使用して、Instasharp ラッパー経由で Instagram の投稿をプルするために使用したい .net コンソール アプリケーションがあります。

私は C# .net Web フォームを広範囲に使用していますが、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");
 }

私の最初の問題を解決した最初のコメントの後に編集されたコード。

近づいたような気がしますが、まだ何かが欠けています。以下の特定の質問を参照してください...

InstaSharp GitHub ( https://github.com/InstaSharp/InstaSharp ) のドキュメントに基づいてコードを作成しました。GitHub の例は MVC アプリケーションに基づいています。私のものは MVC プロジェクトではなく、コンソール アプリケーションです。

私は非常に親しいと感じており、他の人が私がこれを解決するのを手伝ってくれることで恩恵を受けるかもしれません.

私の特定の質問... 1) OAuth メソッドの「コード」パラメーターがどこから来たのかわかりませんか?? 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");
    }
4

1 に答える 1