コード例 #1
0
ファイル: FacebookUtilities.cs プロジェクト: aws/aws-sdk-net
 public static void DeleteFacebookUser(FacebookCreateUserResponse user)
 {
     var facebookDeleteUserUrl = string.Format("https://graph.facebook.com/{0}?method=delete&access_token={1}",
     user.ID, user.AccessToken);
     var deleteUserRequest = new UnityWwwRequest(new Uri(facebookDeleteUserUrl));
     deleteUserRequest.GetResponse();
 }
コード例 #2
0
        public static void DeleteFacebookUser(FacebookCreateUserResponse user)
        {
            var facebookDeleteUserUrl = string.Format("https://graph.facebook.com/{0}?method=delete&access_token={1}",
                                                      user.ID, user.AccessToken);
            var deleteUserRequest = new UnityWwwRequest(new Uri(facebookDeleteUserUrl));

            deleteUserRequest.GetResponse();
        }
コード例 #3
0
ファイル: FacebookUtilities.cs プロジェクト: aws/aws-sdk-net
        private static string GetFacebookAccessToken(string facebookAppId, string facebookAppSecret)
        {
            // https://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/
            var facebookAppAccessTokenUri = string.Format(
                "https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials",
                facebookAppId,
                facebookAppSecret);

            // Get App Access Token
            string accessToken;
            var accessTokenRequest = new UnityWwwRequest(new Uri(facebookAppAccessTokenUri));
            var accessTokenResponse = accessTokenRequest.GetResponse();

            using (var streamReader = new StreamReader(accessTokenResponse.ResponseBody.OpenResponse(), Encoding.GetEncoding("UTF-8")))
            {
                accessToken = streamReader.ReadToEnd();
            }

            return accessToken;
        }
コード例 #4
0
        private static string GetFacebookAccessToken(string facebookAppId, string facebookAppSecret)
        {
            // https://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/
            var facebookAppAccessTokenUri = string.Format(
                "https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials",
                facebookAppId,
                facebookAppSecret);

            // Get App Access Token
            string accessToken;
            var    accessTokenRequest  = new UnityWwwRequest(new Uri(facebookAppAccessTokenUri));
            var    accessTokenResponse = accessTokenRequest.GetResponse();

            using (var streamReader = new StreamReader(accessTokenResponse.ResponseBody.OpenResponse(), Encoding.GetEncoding("UTF-8")))
            {
                accessToken = streamReader.ReadToEnd();
            }

            return(accessToken);
        }
コード例 #5
0
ファイル: FacebookUtilities.cs プロジェクト: aws/aws-sdk-net
        public static FacebookCreateUserResponse CreateFacebookUser(string facebookAppId, string facebookAppSecret)
        {
            var accessToken = GetFacebookAccessToken(facebookAppId, facebookAppSecret);

            FacebookCreateUserResponse responseObject;
            // Create an user for the app. This returns the OAuth token.
            // https://developers.facebook.com/docs/test_users/
            var facebookCreateNewUserUrl = string.Format(
                @"https://graph.facebook.com/{0}/accounts/test-users?
                installed=true&name=Foo%20Bar&locale=en_US&permissions=read_stream&method=post&{1}",
                facebookAppId,
                accessToken);

            var createUserRequest = new UnityWwwRequest(new Uri(facebookCreateNewUserUrl));
            var createUserResponse = createUserRequest.GetResponse();
            using (var streamReader = new StreamReader(createUserResponse.ResponseBody.OpenResponse()))
            {
                var json = ThirdParty.Json.LitJson.JsonMapper.ToObject(streamReader);
                responseObject = new FacebookCreateUserResponse(json);
            }

            return responseObject;
        }
コード例 #6
0
        public static FacebookCreateUserResponse CreateFacebookUser(string facebookAppId, string facebookAppSecret)
        {
            var accessToken = GetFacebookAccessToken(facebookAppId, facebookAppSecret);

            FacebookCreateUserResponse responseObject;
            // Create an user for the app. This returns the OAuth token.
            // https://developers.facebook.com/docs/test_users/
            var facebookCreateNewUserUrl = string.Format(
                @"https://graph.facebook.com/{0}/accounts/test-users?
                installed=true&name=Foo%20Bar&locale=en_US&permissions=read_stream&method=post&{1}",
                facebookAppId,
                accessToken);

            var createUserRequest  = new UnityWwwRequest(new Uri(facebookCreateNewUserUrl));
            var createUserResponse = createUserRequest.GetResponse();

            using (var streamReader = new StreamReader(createUserResponse.ResponseBody.OpenResponse()))
            {
                var json = ThirdParty.Json.LitJson.JsonMapper.ToObject(streamReader);
                responseObject = new FacebookCreateUserResponse(json);
            }

            return(responseObject);
        }
コード例 #7
0
        private void PostObject(PostObjectRequest request, AsyncOptions options, Action <AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper)
        {
            string url;
            string subdomain = request.Region.Equals(RegionEndpoint.USEast1) ? "s3" : "s3-" + request.Region.SystemName;
            IDictionary <string, string> headers = new Dictionary <string, string>();

            if (request.Bucket.IndexOf('.') > -1)
            {
                url = string.Format(CultureInfo.InvariantCulture, "https://{0}.amazonaws.com/{1}/", subdomain, request.Bucket);
            }
            else
            {
                url = string.Format(CultureInfo.InvariantCulture, "https://{0}.{1}.amazonaws.com", request.Bucket, subdomain);
            }
            Uri uri = new Uri(url);

            IHttpRequest <string> webRequest = null;

            if (AWSConfigs.HttpClient == AWSConfigs.HttpClientOption.UnityWWW)
            {
                webRequest = new UnityWwwRequest(uri);
            }
            else
            {
                webRequest = new UnityRequest(uri);
            }

            var boundary = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Replace('=', 'z');

            headers[HeaderKeys.ContentTypeHeader] = string.Format(CultureInfo.InvariantCulture, "multipart/form-data; boundary={0}", boundary);
            headers[HeaderKeys.UserAgentHeader]   = AWSSDKUtils.UserAgentHeader;

            webRequest.Method = "POST";

            using (var reqStream = new MemoryStream())
            {
                request.WriteFormData(boundary, reqStream);

                byte[] boundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "--{0}\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n", boundary));

                reqStream.Write(boundaryBytes, 0, boundaryBytes.Length);
                using (var inputStream = null == request.Path ? request.InputStream : File.OpenRead(request.Path))
                {
                    byte[] buf = new byte[1024];
                    int    bytesRead;
                    while ((bytesRead = inputStream.Read(buf, 0, 1024)) > 0)
                    {
                        reqStream.Write(buf, 0, bytesRead);
                    }
                }
                byte[] endBoundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "\r\n--{0}--", boundary));
                reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                webRequest.WriteToRequestBody(null, reqStream.ToArray(), headers);

                var callback = ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).StreamUploadProgressCallback;
                if (callback != null)
                {
                    webRequest.SetupProgressListeners(reqStream, 0, request, callback);
                }
            }

            var executionContext = new AsyncExecutionContext(
                new AsyncRequestContext(this.Config.LogMetrics, new NullSigner())
            {
                ClientConfig    = this.Config,
                OriginalRequest = request,
                Action          = callbackHelper,
                AsyncOptions    = options,
                IsAsync         = true
            },
                new AsyncResponseContext()
                );

            webRequest.SetRequestHeaders(headers);
            executionContext.RuntimeState = webRequest;


            executionContext.ResponseContext.AsyncResult =
                new RuntimeAsyncResult(executionContext.RequestContext.Callback,
                                       executionContext.RequestContext.State);
            executionContext.ResponseContext.AsyncResult.AsyncOptions = executionContext.RequestContext.AsyncOptions;
            executionContext.ResponseContext.AsyncResult.Action       = executionContext.RequestContext.Action;
            executionContext.ResponseContext.AsyncResult.Request      = executionContext.RequestContext.OriginalRequest;

            webRequest.BeginGetResponse(new AsyncCallback(ProcessPostResponse), executionContext);
        }
コード例 #8
0
        private void PostObject(PostObjectRequest request, AsyncOptions options, Action<AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper)
        {
            string url;
            string subdomain = request.Region.Equals(RegionEndpoint.USEast1) ? "s3" : "s3-" + request.Region.SystemName;
            IDictionary<string, string> headers = new Dictionary<string, string>();

            if (request.Bucket.IndexOf('.') > -1)
                url = string.Format(CultureInfo.InvariantCulture, "https://{0}.amazonaws.com/{1}/", subdomain, request.Bucket);
            else
                url = string.Format(CultureInfo.InvariantCulture, "https://{0}.{1}.amazonaws.com", request.Bucket, subdomain);
            Uri uri = new Uri(url);

            IHttpRequest<string> webRequest = null;
            if (AWSConfigs.HttpClient == AWSConfigs.HttpClientOption.UnityWWW)
                webRequest = new UnityWwwRequest(uri);
            else
                webRequest = new UnityRequest(uri);

            var boundary = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Replace('=', 'z');

            headers[HeaderKeys.ContentTypeHeader] = string.Format(CultureInfo.InvariantCulture, "multipart/form-data; boundary={0}", boundary);
            headers[HeaderKeys.UserAgentHeader] = AWSSDKUtils.UserAgentHeader;

            webRequest.Method = "POST";

            using (var reqStream = new MemoryStream())
            {
                request.WriteFormData(boundary, reqStream);

                byte[] boundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "--{0}\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n", boundary));

                reqStream.Write(boundaryBytes, 0, boundaryBytes.Length);
                using (var inputStream = null == request.Path ? request.InputStream : File.OpenRead(request.Path))
                {
                    byte[] buf = new byte[1024];
                    int bytesRead;
                    while ((bytesRead = inputStream.Read(buf, 0, 1024)) > 0)
                    {
                        reqStream.Write(buf, 0, bytesRead);
                    }
                }
                byte[] endBoundaryBytes = Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "\r\n--{0}--", boundary));
                reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                webRequest.WriteToRequestBody(null, reqStream.ToArray(), headers);

                var callback = ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).StreamUploadProgressCallback;
                if (callback != null)
                    webRequest.SetupProgressListeners(reqStream, 0, request, callback);
            }

            var executionContext = new AsyncExecutionContext(
                new AsyncRequestContext(this.Config.LogMetrics)
                {
                    ClientConfig = this.Config,
                    OriginalRequest = request,
                    Action = callbackHelper,
                    AsyncOptions = options,
                    IsAsync = true
                },
                new AsyncResponseContext()
            );

            webRequest.SetRequestHeaders(headers);
            executionContext.RuntimeState = webRequest;


            executionContext.ResponseContext.AsyncResult =
                       new RuntimeAsyncResult(executionContext.RequestContext.Callback,
                           executionContext.RequestContext.State);
            executionContext.ResponseContext.AsyncResult.AsyncOptions = executionContext.RequestContext.AsyncOptions;
            executionContext.ResponseContext.AsyncResult.Action = executionContext.RequestContext.Action;
            executionContext.ResponseContext.AsyncResult.Request = executionContext.RequestContext.OriginalRequest;

            webRequest.BeginGetResponse(new AsyncCallback(ProcessPostResponse), executionContext);
        }