Пример #1
0
    IEnumerator WaitSS()
    {
        // レイアウト設定のために1フレーム待つ
        yield return(new WaitForEndOfFrame());

        Application.CaptureScreenshot("image.png");


        // キャプチャを保存する処理として1フレーム待つ
        yield return(new WaitForEndOfFrame());

                #if UNITY_ANDROID
        Debug.Log(Application.persistentDataPath);
        SocialConnector.Share(
            string.Format("Level{0}を{1}い〜くあるでクリア! {2}", m_iLevel, m_iScore, DefineProject.TWEET_MESSAGE_CLEAR)
            );
                #elif UNITY_IPHONE
        //DefineProject.TWEET_MESSAGE_CLEAR,
        string strTest = string.Format("Level{0}を{1}い〜くあるでクリア! {2}", m_iLevel, m_iScore, DefineProject.TWEET_MESSAGE_CLEAR);
        SocialConnector.Share(
            strTest,
            "",
            Application.persistentDataPath + "/image.png"
            );
                #endif
    }
Пример #2
0
    IEnumerator startShare(string _strMessage, string _strImage)
    {
        //string filename = "screenshot.png";
        string path = "";

        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            path = Application.persistentDataPath + "/" + _strImage;
            break;

        case RuntimePlatform.Android:
            path = Application.persistentDataPath + "/" + _strImage;
            break;

        default:
            path = Application.persistentDataPath + "/" + _strImage;
            break;
        }
        SocialConnector.Share(
            _strMessage,
            null,
            path
            );
        m_bShareEnd = true;
        yield return(0);
    }
Пример #3
0
 // シェアボタンを押したら
 void onShareButtonDown()
 {
     if (shareable)
     {
         Debug.Log("share");
         string message = string.Format("Pen's Adventureで{0}点とりました。", ObstacleController.score);
         SocialConnector.Share(message, "#PensAdventure @PenPenDream", imagePath);
         shareable = false;
     }
 }
Пример #4
0
    // Token: 0x0600049F RID: 1183 RVA: 0x00021210 File Offset: 0x0001F610
    public IEnumerator SendSocial(string socialText, string socialURL, Texture2D sendTex, UIMaster ui)
    {
        ui.freezeUI(true);
        yield return(this.SaveTmpImage(sendTex));

        this.SaveTmpImage(sendTex);
        yield return(new WaitForSeconds(1f));

        SocialConnector.Share(socialText, socialURL, this.imagePath);
        ui.freezeUI(false);
        yield break;
    }
    /// <summary>
    /// SNS共有処理コルーチン
    /// </summary>
    public IEnumerator _Share()
    {
        string imgPath = Application.persistentDataPath + "/image.png";

        // 前回のデータを削除
        File.Delete(imgPath);
        // 削除が完了するまで待機
        while (true)
        {
            if (!File.Exists(imgPath))
            {
                break;
            }
            yield return(null);
        }

        // スクリーンショットを取得
        ScreenCapture.CaptureScreenshot("image.png");
        // 撮影画像の書き込みが完了するまで待機
        while (true)
        {
            if (File.Exists(imgPath))
            {
                break;
            }
            yield return(null);
        }
        // 撮影画像の保存処理のため、1フレーム待機
        yield return(new WaitForEndOfFrame());

        // 投稿する
        string tweetText;

        if (Application.systemLanguage == SystemLanguage.Japanese)
        {
            tweetText = "マグネを" + score.ToString() + "個積みました!\n#マグネタワー\n【iOS/Android】\n"; // 日本語
        }
        else
        {
            tweetText = "MagTower Score: " + score.ToString() + "\n#マグネタワー\n【iOS/Android】\n";   // 日本語以外
        }
        string tweetURL = "【ツイートURL】";

        SocialConnector.PostMessage(SocialConnector.ServiceType.Twitter, tweetText, tweetURL, imgPath);
    }
Пример #6
0
    public IEnumerator Share()
    {
        //スクリーンショットを撮影
        Application.CaptureScreenshot("image.png");
        yield return(new WaitForEndOfFrame());

        if (Application.platform == RuntimePlatform.Android)
        {
            text = "テスト";
            URL  = "特になし!";
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            text = "テスト";
            URL  = "特になし!";
        }
        yield return(new WaitForSeconds(1));

        SocialConnector.Share(text, URL, imagePath);
    }
Пример #7
0
    void OnGUI()
    {
        if (GUILayout.Button("<size=30><b>Take</b></size>", GUILayout.Height(60)))
        {
            ScreenCapture.CaptureScreenshot("image.png");
        }

        GUILayout.Space(60);

        ///=================
        /// Share
        ///=================

        if (GUILayout.Button("<size=30><b>Share</b></size>", GUILayout.Height(60)))
        {
            SocialConnector.Share("Social Connector", "https://github.com/anchan828/social-connector", null);
        }
        if (GUILayout.Button("<size=30><b>Share Image</b></size>", GUILayout.Height(60)))
        {
            SocialConnector.Share("Social Connector", "https://github.com/anchan828/social-connector", imagePath);
        }
    }
Пример #8
0
    /// <summary>
    /// キャプチャーの画像が作成されるまでまつ
    /// </summary>
    /// <returns>The image write waiting.</returns>
    /// <param name="imgPath">Image path.</param>
    /// <param name="message">Message.</param>
    IEnumerator CaptureImageWriteWaiting()
    {
        // レイアウト設定のために1フレーム待つ
        yield return(new WaitForEndOfFrame());

        //写真撮影
        Application.CaptureScreenshot(SCREENSHOTS + "/" + fileName);

        do
        {
            //Debug.Log ("Temporary ScreenShot hav not been written yet. " + GetImgPath + fileName);
            //書込み処理のために1フレーム待つ
            yield return(new WaitForEndOfFrame());
        } while (!System.IO.File.Exists(GetImgPath + fileName));

        // キャプチャを保存する処理として1フレーム待つ
        yield return(new WaitForEndOfFrame());

        SocialConnector.Share(MESSAGE, URL, GetImgPath + fileName);
        isShoot = false;
        yield break;
    }
 public abstract void UpdateSocialCredential(long clientId, SocialConnector connector, string element, string credential);
        private string updateCredentialInXml(string credentials, SocialConnector connector, string element, string value)
        {
            if (string.IsNullOrEmpty(credentials))
                credentials = "<socialconnector></socialconnector>";

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(credentials);
            XmlElement elemSc = xmlDoc.FirstChild as XmlElement;
            //connector.ToString()
            XmlNodeList nl = elemSc.GetElementsByTagName(connector.ToString());
            if (nl.Count == 0)
            {
                XmlElement elemCon = xmlDoc.CreateElement(connector.ToString());
                XmlElement el = xmlDoc.CreateElement("key");
                XmlAttribute attr = xmlDoc.CreateAttribute("name");
                attr.Value = element;
                el.Attributes.Append(attr);
                attr = xmlDoc.CreateAttribute("value");
                attr.Value = value;
                el.Attributes.Append(attr);
                elemCon.AppendChild(el);
                elemSc.AppendChild(elemCon);
            }
            else
            {
                XmlElement elem = nl[0] as XmlElement;
                if (elem != null)
                {
                    XmlNodeList elemList = elem.GetElementsByTagName("key");
                    bool found = false;
                    foreach (XmlNode node in elemList)
                    {
                        XmlElement el = node as XmlElement;
                        if (el.HasAttributes &&
                            el.HasAttribute("name") &&
                            el.GetAttribute("name") == element)
                        {
                            found = true;
                            el.SetAttribute("value", value);
                            break;
                        }
                    }
                    if (!found)
                    {
                        XmlElement el1 = xmlDoc.CreateElement("key");
                        XmlAttribute attr = xmlDoc.CreateAttribute("name");
                        attr.Value = element;
                        el1.Attributes.Append(attr);
                        attr = xmlDoc.CreateAttribute("value");
                        attr.Value = value;
                        el1.Attributes.Append(attr);
                        elem.AppendChild(el1);
                    }
                }
            }

            return xmlDoc.OuterXml;
        }
        /* Social connector credentials format example
            <socialconnector>
              <credentials id='twitter'>
                <key name='client_id' value='...'/>
                <key name='client_secret' value='...'/>
                <key name='access_token' value='...'/>
              </credentials>
              <credentials id='facebook'>
                <key name='client_id' value='...'/>
                <key name='client_secret' value='...'/>
                <key name='access_token' value='...'/>
              </credentials>
              <credentials id='soundcloud'>
                <key name='client_id' value='...'/>
                <key name='client_secret' value='...'/>
                <key name='access_token' value='...'/>
              </credentials>
            </socialconnector>
         */
        private string getCredentialFromXml(string credentials, SocialConnector connector, string element)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(credentials);

            XmlElement elemSc = doc.FirstChild as XmlElement;
            if (elemSc != null)
            {
                XmlNodeList nl = elemSc.GetElementsByTagName(connector.ToString());
                if (nl.Count == 0)
                    return string.Empty;

                XmlElement elem = nl[0] as XmlElement;
                // If the element wasn't found we bail out with an empty string
                if (elem == null)
                    return string.Empty;

                XmlNodeList elemList = elem.GetElementsByTagName("key");
                // if there are no child elements, bail out with an empty string

                // search through the list for the specified child
                foreach (XmlNode node in elemList)
                {
                    XmlElement el = node as XmlElement;
                    if (el != null && (el.HasAttributes &&
                                       el.HasAttribute("name") &&
                                       el.GetAttribute("name") == element))
                        return el.GetAttribute("value");
                }
            }

            return string.Empty;
        }
        private string DeleteSocialAttributes(string credentials, SocialConnector connector)
        {
            string xmlString = string.Empty;

            int startIndex = 0;
            int endIndex = 0;

            switch (connector)
            {
                case SocialConnector.Facebook:
                    startIndex = credentials.IndexOf("<Facebook>");
                    endIndex = credentials.IndexOf("</Facebook>");
                    credentials = credentials.Replace("</Facebook>", "");
                    break;
                case SocialConnector.Twitter:
                    startIndex = credentials.IndexOf("<Twitter>");
                    endIndex = credentials.IndexOf("</Twitter>");
                    credentials = credentials.Replace("</Twitter>", "");
                    break;
                case SocialConnector.SoundCloud:
                    startIndex = credentials.IndexOf("<SoundCloud>");
                    endIndex = credentials.IndexOf("</SoundCloud>");
                    credentials = credentials.Replace("</SoundCloud>", "");
                    break;
            }

            if (startIndex > -1 && endIndex > startIndex)
                xmlString = credentials.Remove(startIndex, endIndex - startIndex);
            else
                xmlString = credentials;

            return xmlString;
        }
        private string deleteCredentialFromXml(string credentials, SocialConnector connector)
        {
            string xmlString = string.Empty;

            if (string.IsNullOrEmpty(credentials))
                credentials = "<socialconnector></socialconnector>";

            xmlString = DeleteSocialAttributes(credentials, connector);

            return xmlString;
        }
        /*
            private XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(xmlText);

            XmlElement elem = xmlDoc.GetElementById("twitter");

            XmlNodeList elemList = elem.GetElementsByTagName("key");
            foreach (XmlNode node in elemList)
            {
              XmlElement el = node as XmlElement;
              string val = el.GetAttribute(element);
            }
         */
        public override void UpdateSocialCredential(long clientId, SocialConnector connector, string element, string credential)
        {
            // Here we know an element and a credential (value)
            // Now we have to add them to the existing credentials
            string accessCode = GetSocialAccessCode(clientId);
            string credentials = string.Empty;
            // First get the current credentials from the database
            using (MySqlConnection conn = new MySqlConnection(GetConnectionString()))
            using (MySqlCommand cmd = new MySqlCommand(QRY_GET_SOCIAL_ACCESS_CRED, conn))
            {
                cmd.Parameters.Add("@client_id", MySqlDbType.Int64).Value = clientId;
                try
                {
                    conn.Open();
                    object obj = cmd.ExecuteScalar();
                    if (obj != null)
                    {
                        string credEncrypted = obj as string;
                        if (!string.IsNullOrEmpty(credEncrypted))
                            credentials = Crypto.Decrypt(credEncrypted, accessCode);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Instance.Write(LogLevel.Error, ex, "GetSocialCredentials");
                }
                finally
                {
                    conn.Close();
                }
            }

            credentials = updateCredentialInXml(credentials, connector, element, credential);

            string credentialsEncrypted = Crypto.Encrypt(credentials, accessCode);

            using (MySqlConnection conn = new MySqlConnection(GetConnectionString()))
            using (MySqlCommand cmd = new MySqlCommand(QRY_UPDATE_SOCIAL_ACCESS, conn))
            {
                cmd.Parameters.Add("@client_id", MySqlDbType.Int64).Value = clientId;
                cmd.Parameters.Add("@socialcred", MySqlDbType.Text).Value = credentialsEncrypted;

                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    Logger.Instance.Write(LogLevel.Error, ex, "UpdateSocialCredentials");
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        public override string GetSocialCredential(long clientId, SocialConnector connector, string element)
        {
            string ret = string.Empty;
            string accessCode = GetSocialAccessCode(clientId);

            using (MySqlConnection conn = new MySqlConnection(GetConnectionString()))
            using (MySqlCommand cmd = new MySqlCommand(QRY_GET_SOCIAL_ACCESS_CRED, conn))
            {
                cmd.Parameters.Add("@client_id", MySqlDbType.Int64).Value = clientId;
                try
                {
                    conn.Open();
                    object obj = cmd.ExecuteScalar();
                    if (obj != null)
                    {
                        string credentials = obj as string;
                        string xmlText = Crypto.Decrypt(credentials, accessCode);

                        // At this point ret contains the xml with the connector access
                        // now we have to look for the proper connector and the specified element
                        ret = getCredentialFromXml(xmlText, connector, element);
                    }
                    else
                    {
                        ret = null;
                    }
                }
                catch (Exception ex)
                {
                    Logger.Instance.Write(LogLevel.Error, ex, "GetSocialCredentials");
                    ret = null;
                }
                finally
                {
                    conn.Close();
                }
            }

            return ret;
        }
Пример #16
0
 public abstract void RemoveSocialCredential(long clientId, SocialConnector connector);
Пример #17
0
 public abstract string GetSocialCredential(long clientId, SocialConnector connector, string element);