Exemple #1
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            Cheeseknife.Bind(this);


            _uploadPost.Click += UploadPostClick;
            var posts = new List <Post>
            {
                new Post
                {
                    Url         = "https://static.eos.io/images/Landing/SectionResourceLanding/DevPortLaunch_Social_Eosio-home_opt.jpg",
                    AccauntName = ""
                }
            };

            _adapter = new PostAdapter(this, posts);
            _postList.SetAdapter(_adapter);
            _postList.SetLayoutManager(new LinearLayoutManager(Android.App.Application.Context));
            _httpManager            = new HttpManager();
            _instagramToTvimAdapter = new InstagramToTvimAdapter();
            var assetsHelper = new AssetsHelper(Assets);

            _debugAsset = assetsHelper.TryReadAsset <DebugAsset>("DebugAsset.txt");
        }
        public async Task <OperationResult <MediaModel> > GetLastPost(HttpManager client, DebugAsset debugAsset, CancellationToken token)
        {
            //https://www.instagram.com/developer/authentication/ < how to get access_token (OAuth skiped. hardcoded key used instead... time time..)v
            var fullUrl = GetRecentMediaUrl + debugAsset.InsagramAccessToken;

            if (!string.IsNullOrEmpty(debugAsset.LastLoadedMediaId))
            {
                fullUrl += "&MIN_ID=" + debugAsset.LastLoadedMediaId;
            }
            var responce = await client.GetRequest <InstagramResult>(fullUrl, token);

            if (responce.IsError)
            {
                throw new NotImplementedException(responce.Error.Msg);
            }

            var media = responce.Result.data.FirstOrDefault();

            if (debugAsset.LastLoadedMediaId != null && debugAsset.LastLoadedMediaId.Equals(media.id))
            {
                return(null);
            }

            debugAsset.LastLoadedMediaId = media.id;

            //save image to IPFS
            var model = new UploadMediaModel
            {
                VerifyTransaction = debugAsset.AuthorizationTransactionJson,
                Url = media.images.standard_resolution.url
            };

            return(await client.UploadMedia("https://steepshot.org/api/v1_1/media/upload", model, token));
        }