Newer
Older
TEST / Assets / FacebookSDK / Examples / Mobile / Scripts / SubMenus / DialogShare.cs
@a_kuznecov a_kuznecov on 20 Jun 2023 5 KB First Commit
/**
 * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
 *
 * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
 * copy, modify, and distribute this software in source code or binary form for use
 * in connection with the web services and APIs provided by Facebook.
 *
 * As with any software that integrates with the Facebook platform, your use of
 * this software is subject to the Facebook Developer Principles and Policies
 * [http://developers.facebook.com/policy/]. This copyright notice shall be
 * included in all copies or substantial portions of the software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

namespace Facebook.Unity.Example
{
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using UnityEngine;

    internal class DialogShare : MenuBase
    {
        // Custom Share Link
        private string shareLink = "https://developers.facebook.com/";
        private string shareTitle = "Link Title";
        private string shareDescription = "Link Description";
        private string shareImage = "http://i.imgur.com/j4M7vCO.jpg";

        // Custom Feed Share
        private string feedTo = string.Empty;
        private string feedLink = "https://developers.facebook.com/";
        private string feedTitle = "Test Title";
        private string feedCaption = "Test Caption";
        private string feedDescription = "Test Description";
        private string feedImage = "http://i.imgur.com/zkYlB.jpg";
        private string feedMediaSource = string.Empty;

        protected override bool ShowDialogModeSelector()
        {
            #if !UNITY_EDITOR && (UNITY_IOS || UNITY_ANDROID)
            return true;
            #else
            return false;
            #endif
        }

        protected override void GetGui()
        {
            bool enabled = GUI.enabled;
            if (this.Button("Share - Link"))
            {
                FB.ShareLink(new Uri("https://developers.facebook.com/"), callback: this.HandleResult);
            }

            // Note: Web dialog doesn't support photo urls.
            if (this.Button("Share - Link Photo"))
            {
                FB.ShareLink(
                    new Uri("https://developers.facebook.com/"),
                    "Link Share",
                    "Look I'm sharing a link",
                    new Uri("http://i.imgur.com/j4M7vCO.jpg"),
                    callback: this.HandleResult);
            }

            this.LabelAndTextField("Link", ref this.shareLink);
            this.LabelAndTextField("Title", ref this.shareTitle);
            this.LabelAndTextField("Description", ref this.shareDescription);
            this.LabelAndTextField("Image", ref this.shareImage);
            if (this.Button("Share - Custom"))
            {
                FB.ShareLink(
                    new Uri(this.shareLink),
                    this.shareTitle,
                    this.shareDescription,
                    new Uri(this.shareImage),
                    this.HandleResult);
            }

            GUI.enabled = enabled && (!Constants.IsEditor || (Constants.IsEditor && FB.IsLoggedIn));
            if (this.Button("Feed Share - No To"))
            {
                FB.FeedShare(
                    string.Empty,
                    new Uri("https://developers.facebook.com/"),
                    "Test Title",
                    "Test caption",
                    "Test Description",
                    new Uri("http://i.imgur.com/zkYlB.jpg"),
                    string.Empty,
                    this.HandleResult);
            }

            this.LabelAndTextField("To", ref this.feedTo);
            this.LabelAndTextField("Link", ref this.feedLink);
            this.LabelAndTextField("Title", ref this.feedTitle);
            this.LabelAndTextField("Caption", ref this.feedCaption);
            this.LabelAndTextField("Description", ref this.feedDescription);
            this.LabelAndTextField("Image", ref this.feedImage);
            this.LabelAndTextField("Media Source", ref this.feedMediaSource);
            if (this.Button("Feed Share - Custom"))
            {
                FB.FeedShare(
                    this.feedTo,
                    string.IsNullOrEmpty(this.feedLink) ? null : new Uri(this.feedLink),
                    this.feedTitle,
                    this.feedCaption,
                    this.feedDescription,
                    string.IsNullOrEmpty(this.feedImage) ? null : new Uri(this.feedImage),
                    this.feedMediaSource,
                    this.HandleResult);
            }

            GUI.enabled = enabled;
        }
    }
}