コード例 #1
0
        private async Task Authorize()
        {
            dynamic keys = await GetAppCredentials("Facebook");

            string clientId = keys.client_id;

            IDeviceOAuth2Stepwise auth = new DeviceOAuth(EndPointInfo.Facebook, "public_profile", clientId);
            var info = await auth.StartAuthorization();

            var msg = $"Navigate to {info.VerificationUri} \nEnter this code: {info.UserCode}";

            Notify.Text = msg;

            var token = await auth.WaitForUserConsent(info);

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "Bearer",
                AuthToken  = token.AccessToken
            };

            dynamic client = new DynamicRestClient("https://graph.facebook.com/v2.3/me", defaults);

            dynamic v = await client.get(fields : "name");

            Notify.Text   = "";
            UserName.Text = v.name;
        }
コード例 #2
0
        public async Task MultiPartUploadObject()
        {
            var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/devstorage.read_write");

            _token = await auth.Authenticate(_token);

            Assert.IsNotNull(_token, "auth failed");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = _token
            };

            dynamic google = new DynamicRestClient("https://www.googleapis.com/", defaults);

            using (var stream = new StreamInfo(File.OpenRead(@"D:\temp\test2.png"), "image/png"))
            {
                dynamic metaData = new ExpandoObject();
                metaData.name = "test2";
                dynamic result = await google.upload.storage.v1.b.unit_tests.o.post(metaData, stream, uploadType : new PostUrlParam("multipart"));

                Assert.IsNotNull(result);
            }
        }
コード例 #3
0
        private static async Task EnumerateObjects(string project)
        {
            var auth  = new GoogleOAuth2("https://www.googleapis.com/auth/devstorage.read_write");
            var token = await auth.Authenticate("");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = token
            };

            dynamic google         = new DynamicRestClient("https://www.googleapis.com/", defaults);
            dynamic bucketEndPoint = google.storage.v1.b;
            dynamic buckets        = await bucketEndPoint.get(project : project);

            foreach (var bucket in buckets.items)
            {
                Console.WriteLine("bucket {0}: {1}", bucket.id, bucket.name);

                dynamic contents = await bucketEndPoint(bucket.id).o.get();

                foreach (var item in contents.items)
                {
                    Console.WriteLine("\tid: {0}", item.id);
                    Console.WriteLine("\tname: {0}", item.name);
                    Console.WriteLine("\tcontent type: {0}", item.contentType);
                    Console.WriteLine("\t-----");
                }
            }
        }
コード例 #4
0
 private void DefineRESTDefaults()
 {
     restClientDefaults = new DynamicRestClientDefaults();
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_PLATFORM, "Windows");
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_PLATFORM_VERSION, System.Environment.Version.ToString());
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_PROVIDES, "player");
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_CLIENT_IDENTIFIER, "38fc8a22-6fc5-46f2-8c6b-818e2758cfa2");
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_PRODUCT, "Plex2Sonos");
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_VERSION, "0.0.0.1");
     restClientDefaults.DefaultHeaders.Add(PlexHeaders.X_PLEX_DEVICE, System.Environment.MachineName);
     restClientDefaults.DefaultHeaders.Add("Accept", "application/json");
 }
コード例 #5
0
 public async Task UserSuppliedAcceptHeaderOverridesDefaultAcceptHeaders()
 {
     var defaults = new DynamicRestClientDefaults();
     defaults.DefaultHeaders.Add("AccEpt", "application/json");
     
     using (dynamic google = new DynamicRestClient("https://www.googleapis.com/", MockInitialization.Handler, false, defaults))
     using (HttpResponseMessage response = await google.storage.v1.b("uspto-pair").get(typeof(HttpResponseMessage)))
     {
         response.EnsureSuccessStatusCode();
         Assert.IsNotNull(response.RequestMessage.Headers.Accept);
         Assert.AreEqual(1, response.RequestMessage.Headers.Accept.Count);
         Assert.AreEqual("application/json", response.RequestMessage.Headers.Accept.First().MediaType);
     }
 }
コード例 #6
0
        public async Task UserSuppliedAcceptHeaderOverridesDefaultAcceptHeaders()
        {
            var defaults = new DynamicRestClientDefaults();

            defaults.DefaultHeaders.Add("AccEpt", "application/json");

            using (dynamic google = new DynamicRestClient("https://www.googleapis.com/", MockInitialization.Handler, false, defaults))
                using (HttpResponseMessage response = await google.storage.v1.b("uspto-pair").get(typeof(HttpResponseMessage)))
                {
                    response.EnsureSuccessStatusCode();
                    Assert.IsNotNull(response.RequestMessage.Headers.Accept);
                    Assert.AreEqual(1, response.RequestMessage.Headers.Accept.Count);
                    Assert.AreEqual("application/json", response.RequestMessage.Headers.Accept.First().MediaType);
                }
        }
コード例 #7
0
        public async Task DefaultAuthHeader()
        {
            var defaults = new DynamicRestClientDefaults();

            string key = CredentialStore.RetrieveObject("sunlight.key.json").Key;
            defaults.DefaultHeaders.Add("X-APIKEY", key);

            using (dynamic client = new DynamicRestClient("http://openstates.org/api/v1/", defaults))
            {
                var result = await client.bills.mn("2013s1")("SF 1").get();

                Assert.IsNotNull(result);
                Assert.IsTrue(result.id == "MNB00017167");
            }
        }
コード例 #8
0
        public async Task UploadPhoto()
        {
            var key = CredentialStore.RetrieveObject("flickr.key.json");
            var defaults = new DynamicRestClientDefaults();
            defaults.DefaultParameters.Add("format", "json");
            defaults.DefaultParameters.Add("api_key", key.Key);
            defaults.DefaultParameters.Add("nojsoncallback", "1");

            using (dynamic client = new DynamicRestClient("https://up.flickr.com/services/", MockInitialization.Handler, false, defaults))
            {
                dynamic result = await client.upload.post(photo: File.OpenRead(@"D:\temp\test.png"));

                Assert.IsNotNull(result);
            }
        }
コード例 #9
0
        public async Task FindUserByName()
        {
            var key = CredentialStore.RetrieveObject("flickr.key.json");
            var defaults = new DynamicRestClientDefaults();
            defaults.DefaultParameters.Add("format", "json");
            defaults.DefaultParameters.Add("api_key", key.Key);
            defaults.DefaultParameters.Add("nojsoncallback", "1");

            using (dynamic client = new DynamicRestClient("https://api.flickr.com/services/rest/", MockInitialization.Handler, false, defaults))
            {
                dynamic result = await client.get(method: "flickr.people.findByUsername", username: "******");
                Assert.IsNotNull(result);
                Assert.AreEqual("9039518@N03", result.user.id);
            }
        }
コード例 #10
0
        public async Task UploadPhoto()
        {
            var key      = CredentialStore.RetrieveObject("flickr.key.json");
            var defaults = new DynamicRestClientDefaults();

            defaults.DefaultParameters.Add("format", "json");
            defaults.DefaultParameters.Add("api_key", key.Key);
            defaults.DefaultParameters.Add("nojsoncallback", "1");

            dynamic client = new DynamicRestClient("https://up.flickr.com/services/", defaults);

            dynamic result = await client.upload.post(photo : File.OpenRead(@"D:\temp\test.png"));

            Assert.IsNotNull(result);
        }
コード例 #11
0
        public async Task FindUserByName()
        {
            var key      = CredentialStore.RetrieveObject("flickr.key.json");
            var defaults = new DynamicRestClientDefaults();

            defaults.DefaultParameters.Add("format", "json");
            defaults.DefaultParameters.Add("api_key", key.Key);
            defaults.DefaultParameters.Add("nojsoncallback", "1");

            dynamic client = new DynamicRestClient("https://api.flickr.com/services/rest/", defaults);

            dynamic result = await client.get(method : "flickr.people.findByUsername", username : "******");

            Assert.IsNotNull(result);
            Assert.AreEqual("9039518@N03", (string)result.user.id);
        }
コード例 #12
0
        public async Task DefaultAuthHeader()
        {
            var defaults = new DynamicRestClientDefaults();

            string key = CredentialStore.RetrieveObject("sunlight.key.json").Key;

            defaults.DefaultHeaders.Add("X-APIKEY", key);

            using (dynamic client = new DynamicRestClient("http://openstates.org/api/v1/", defaults))
            {
                var result = await client.bills.mn("2013s1")("SF 1").get();

                Assert.IsNotNull(result);
                Assert.IsTrue(result.id == "MNB00017167");
            }
        }
コード例 #13
0
ファイル: DeviceOAuth.cs プロジェクト: dkackman/DeviceOAuth2
        /// <summary>
        /// Returns the user's endpoint profile using <see cref="EndPointInfo.ProfileUri"/>.
        /// </summary>
        /// <param name="token">The auth token</param>
        /// <param name="cancelToken">A cancellation token</param>
        /// <returns>User's profile</returns>
        /// <exception cref="DynamicRestClientResponseException">When there is an http failure</exception>
        public async Task <dynamic> GetProfile(TokenInfo token, CancellationToken cancelToken)
        {
            if (token == null)
            {
                throw new ArgumentNullException("token");
            }

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = EndPoint.Scheme,
                AuthToken  = token.AccessToken
            };

            using (dynamic profileEndpoint = new DynamicRestClient(_endPoint.ProfileUri, defaults))
            {
                return(await profileEndpoint.get(cancelToken));
            }
        }
コード例 #14
0
        [Ignore] // drive scopes don't work with device pin based oauth2 - ignore for now
        public async Task UploadFile()
        {
            var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/devstorage.read_write");

            _token = await auth.Authenticate(_token);

            Assert.IsNotNull(_token, "auth failed");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = _token
            };

            dynamic google = new DynamicRestClient("https://www.googleapis.com/", defaults);

            dynamic result = await google.upload.drive.v2.files.post(File.OpenRead(@"D:\temp\test.png"), uploadType : "media", title : "unit_test.jpg");

            Assert.IsNotNull(result);
        }
コード例 #15
0
        public async Task UploadString()
        {
            var auth = new GoogleOAuth2("email profile https://www.googleapis.com/auth/devstorage.read_write");

            _token = await auth.Authenticate(_token);

            Assert.IsNotNull(_token, "auth failed");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = _token
            };

            dynamic google = new DynamicRestClient("https://www.googleapis.com/", defaults);

            dynamic result = await google.upload.storage.v1.b.unit_tests.o.post("text", name : new PostUrlParam("string_object"), uploadType : new PostUrlParam("media"));

            Assert.IsNotNull(result);
        }
コード例 #16
0
        public async Task UploadInt()
        {
            var auth = MockInitialization.GetAuthClient("email profile https://www.googleapis.com/auth/devstorage.read_write");

            _token = await auth.Authenticate(_token);

            Assert.IsNotNull(_token, "auth failed");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = _token
            };

            using (dynamic google = new DynamicRestClient("https://www.googleapis.com/", defaults))
            {
                dynamic result = await google.upload.storage.v1.b.unit_tests.o.post(42, name : new PostUrlParam("int_object"), uploadType : new PostUrlParam("media"));

                Assert.IsNotNull(result);
            }
        }
コード例 #17
0
        public async Task UploadObject()
        {
            var auth = MockInitialization.GetAuthClient("email profile https://www.googleapis.com/auth/devstorage.read_write");

            _token = await auth.Authenticate(_token);

            Assert.IsNotNull(_token, "auth failed");

            var defaults = new DynamicRestClientDefaults()
            {
                AuthScheme = "OAuth",
                AuthToken  = _token
            };

            using (dynamic google = new DynamicRestClient("https://www.googleapis.com/", MockInitialization.Handler, false, defaults))
                using (var stream = new StreamInfo(File.OpenRead(@"D:\temp\test.png"), "image/png"))
                {
                    dynamic result = await google.upload.storage.v1.b.unit_tests.o.post(stream, name : new PostUrlParam("test_object"), uploadType : new PostUrlParam("media"));

                    Assert.IsNotNull(result);
                }
        }