• Возможно сделать автопубликацию в Odnoklassniki?

    tomnolane
    @tomnolane
    профессиональный разработчик
    1) чтобы постить на свою стену (на данный момент) - только через это. Но для этого нужно:
    Использование виджета возможно только после аппрува приложения. Для получения аппрува отправьте id вашего приложения и URL сайта, с которого будут осуществляться публикации, на адрес: api-support@ok.ru.


    2) чтобы постить в группу нужно получить разрешение (также, отправляется на адрес: api-support@ok.ru) на VALUABLE_ACCESS, GROUP_CONTENT (реально получить)

    3) если пройдёте все круги - составить 2-3 метода, один из которых этот не составит труда. Так как возможности всё равно сильно будут ограничены. И проще написать самому, чем искать это в интернете (п.с. такого, на php очень мало, и то, мало методов реализовано... тык...тык)

    п.с. альтернатив нету
    Ответ написан
    Комментировать
  • Как вывести количество подписчиков группы ОК?

    tomnolane
    @tomnolane
    профессиональный разработчик
    воспользоваться /group.getMembers

    https://api.ok.ru/fb.do?application_key=" + OK.APPK + "&uid" + uid +"&format=json&method=group.getMembers&sig=" + sig + "&access_token=" + OK.AccessToken


    как-то так примерно...
    Ответ написан
    Комментировать
  • Нехватает знаний, язык c#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Книги - это хорошо, но есть одно но... пока вы не сядите и не начнёте делать, "заочно" выучить/понять будет крайне сложно. К примеру, поставте задачу: сделать... мини БД (судя по вопросу). Что для этого нужно? Открыть то, где это всё можно) (наверно Visual Studio) отлично подойдет.
    Потом, сначала выбрать WindowForms - т.к. wpf может оказаться немного по сложнее на первой этапе из-за разметки xaml (xaml -отдельная вселенная, где уйдут очень много месяцев изучения и практики, чтобы освоить до нормального уровня). Далее размещаем TextBox-ы кнопки и т.д. После этой "прелюдии" переходим в код. И тут как раз нужно пользоваться тем, что делают практически все) (п.с. это не открыть учебник) - открыть гугл/яндекс и ввести "база данных c# примеры" - смотрите, читаете, копипастите ) и так - "разведкой боем" - вы реально поймёте как работает. Т.к. после прочтения любой книги, вы забудите 2/3 того, что прочитано в начале и в середине уже ближе к концу (особенно в книге Троелсена ). И никого не слушайте - что мол, искать решения (готовые или частично готовые) гуглением - это плохо. Главный ИТ-шник гугла - 60% времени сам гуглит в поисках того, как и что можно сделать. И это будет лучше для вас. Т.к. Вы практически занимаетесь "практикой", читаете форумы, где всё "готово" или "почти готово" с разъяснениями. Так легче и проще втянуться (и набрать опыт) по c#. Одними книгами сыт не будешь. Практика и личные ошибки - самые лучшие учителя

    п.с. но для этого, конечно нужны хотябы базовые знания... о типах, классах, конструкторах, геттерах и сеттерах, об основных взаимодействиях между объектами (конкатенация, наследование, интерфейсы).
    Ответ написан
    3 комментария
  • API OK MediaPost проблема с символами +, &, #, %?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вы signature шифруете хешем MD5?

    тело запроса использует attachment, перед отправкой, все символы attachment нужно кодировать в url формат
    на php
    $encode_attachment = urlencode($attachment);
    на js
    var encode_attachment =  encodeURIComponent(attachment);

    на c#
    string encode_attachment = HttpUtility.UrlEncode(attachment);

    где attachment - ваш attachment до кодирования
    encode_attachment - attachment после кодирования в url
    и encode_attachment уже отправляете в MediaPost

    на c# примерно выглядит так (работает)
    h0 = "application_key=" + OK.APPK + "attachment=" + attachments + "format=jsongid=" + gid + "method=mediatopic.posttype=GROUP_THEME" + OK.SSK;
                    g = GetMD5Hash(string.Format("{0}", h0));
                    attachments = HttpUtility.UrlEncode(attachments);
                    request_path = "https://api.ok.ru/fb.do?application_key=" + OK.APPK + "&attachment=" + attachments + "&format=json&gid=" + gid + "&method=mediatopic.post&type=GROUP_THEME&sig=" + g + "&access_token=" + OK.AccessToken;
                    string req = Response(request_path, sender);


    п.с. в подписе нужно использовать attachment до кодирования, а в самом запросе attachment кодированый
    п.с.с. бывают некоторые энкодеры (на С# например есть...) которые не все символы обрабатывают.. если у вас не получается, хотя делаете всё верно - попробуйте сменить на аналогичный енкодер
    п.с.с.с. MD5
    для js (тык)
    для php $hash = md5($str);
    для c#
    public static string GetMD5Hash(string input)
            {
                 var x = new System.Security.Cryptography.MD5CryptoServiceProvider();
                 var bs = Encoding.UTF8.GetBytes(input);
                 bs = x.ComputeHash(bs);
                 var s = new StringBuilder();
                 foreach (var b in bs)
                 {
                    s.Append(b.ToString("x2").ToLower());
                 }
                 return s.ToString();
            }
    Ответ написан
  • Где можно скачать проекты WPF?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Ответ написан
    Комментировать
  • C# TextBox: выводить значения в две колонки?

    tomnolane
    @tomnolane
    профессиональный разработчик
    как вариант
    <ListView  HorizontalAlignment="Left" Height="130" Margin="28,26,0,0" VerticalAlignment="Top" Width="263" ScrollViewer.VerticalScrollBarVisibility="Auto"    FontFamily="Times New Roman" FontWeight="Bold" FontSize="12" IsSynchronizedWithCurrentItem="True" Cursor="Hand"   >
                <ListView.Effect>
                    <DropShadowEffect/>
                </ListView.Effect>
                <ListView.View>
                    <GridView >
                        <GridView.ColumnHeaderContainerStyle >
                            <Style TargetType="GridViewColumnHeader">
                                <Setter Property="BorderThickness" Value="0"></Setter>
                                <Setter Property="BorderBrush" Value="Black"></Setter> 
                                <Setter Property="Background" Value="Bisque"></Setter>
                                <Setter Property="ContentTemplate">
                                    <Setter.Value>
                                        <DataTemplate>
                                            <TextBlock Width="140" TextWrapping="Wrap" Text="{Binding}"></TextBlock>
                                        </DataTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </GridView.ColumnHeaderContainerStyle>
                        <GridView.Columns>
                            <GridViewColumn Header="Пользователь" " ></GridViewColumn>
                            <GridViewColumn Header="Кол-во подписчиков" "></GridViewColumn>
                        </GridView.Columns>
                    </GridView> 
                </ListView.View>
    </ListView>
    Ответ написан
    Комментировать
  • Где ошибка в коде, в одинаковых функциях?

    tomnolane
    @tomnolane
    профессиональный разработчик
    productFib = (prod) ->
      [a, b] = [0, 1]
      [a, b] = [b, a+b] while a*b < prod
      [a, b, a*b==prod]
      
    console.log productFib 4895
    
    productFid = (plod) ->
      [c, d] = [0, 1]
      [c, d] = [d, c+d] while c*d < plod
      [c, d, c*d==plod]
      
    console.log productFid 4895


    п.с. я тоже не разбираюсь в coffe)
    п.с.с. данный код не вызывает ошибок
    Ответ написан
    5 комментариев
  • Как реализовать защищенный и не отслеживаемый телефон?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Свои весомые 5-ть копеек: Приказ Федеральной службы безопасности Российской ...
    если вы в РФ - своим этим "желанием" - вы нарушаете это постановление....
    Что за это будет? Не знаю...
    п.с. вот статья
    BJZ_rPzcGb4.jpg
    Ответ написан
    Комментировать
  • Как при word wrap узнать количество строк на которое разбит текст?

    tomnolane
    @tomnolane
    профессиональный разработчик
    TextWrapping - не разделяет само текстовое предложение на части (т.е. не вставляет "\n").

    узнать количество строк на которое разбит текст?

    подсчитайте кол-во букв сколько влазит в 1 одну стоку (из-за шрифта и его размера - данные могут быть разные... и наверно только вручную можно посмотреть)
    пускай это число будет равным 100, тогда (понадобится логика, скотч, и кусок кода на скорую руку)
    //вводные данные
    int temp_count_chars = 0;
                    string temp_predlojenie_stroka = String.Empty;
                    int all_chars = 100;
                    int colli4estvo_strok = 1;
                    string[] arr = textBox.Text.Split(new[] { ' ' }); 
                    foreach(string slovo in arr)
                    { 
                        if (all_chars >= slovo.Length && (temp_count_chars + slovo.Length) <= all_chars) // если слово меньше или равно общему кол-ву букв с троке и кол-во букв в этой строке вместе с новым словом меньше общей длины строки
                        {
                            if (!string.IsNullOrWhiteSpace(temp_predlojenie_stroka)) { temp_count_chars = temp_predlojenie_stroka.Length + 1;  temp_predlojenie_stroka = "";} //переносное слово с пробелом своим
    
                            temp_count_chars += slovo.Length + 1; // +1 (это пробел после каждого слова)
                            if (temp_count_chars >= all_chars)
                            {
                                colli4estvo_strok++; //переходим на новую строку
                                if (temp_count_chars != all_chars) // переносим слово
                                {
                                    temp_predlojenie_stroka = slovo + " ";
                                }
                                temp_count_chars = 0;
                            }
                        } 
                    }
    MessageBox.Show("Кол-во строк: " + colli4estvo_strok);

    скотч не пригодился - значит сэкономили...
    п.с. не проверял, на скорую руку делал
    Ответ написан
  • Как удалить загруженное приложение?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Комментировать
  • Чем отличаются ссылочные и знаковые типы?

    tomnolane
    @tomnolane
    профессиональный разработчик
    ЗнаЧимые типы хранят значение, а ссылочные - ссылку на значение. Не знаковые))
    class SSylka
    {
        public byte Value { get; set; }
    }
    
    struct Znachenie {
        public byte Value { get; set; }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            SSylka _ssylka = new SSylka { Value = 0 };
            Znachenie _znachenie = new Znachenie { Value = 0 };
        }
    }

    В коде и _ssylka , и _znachenie создаются как локальные переменные метода Main на стеке. Переменная _znachenie содержит значение Value, а переменная _ssylka содержит ссылку на значение Value, хранящееся на куче.

    Для ссылочных типов - это куча, для значимых - это стек. При этом, ссылочная переменная (сама ссылка) храниться на стеке. Значимыми могут быть только экземпляры структур

    (int, double и т.д.) - это структуры

    Мы "создаем переменную с типом MyStruct"?

    Вы* создаёте экземпляр (не путать с ссылкой) переменной в стеке типа MyStruct

    Могу я в стек засунуть к примеру файл?

    Cтек (stack) — это контейнер, работающий по принципу "последний вошел, первый вышел" (last in, first out — LIFO).
    Этот класс создает динамическую коллекцию, которая расширяется по мере потребности хранить в ней вводимые элементы. Всякий раз, когда требуется расширить такую коллекцию, ее емкость увеличивается вдвое.
    Т.е. можно, но вот зачем? Оптимизированнее будет - если будет в куче, чтобы GC (сборщик мусора) удалил его тогда, когда не нужен будет.... а если файл будет изменяться? (увеличиваться/уменьшаться?).... и так каждый раз при увеличении он будет занимать не всё "пространство" выделенное для него...
    Ответ написан
  • Зацените реализацию, цепляет?

    tomnolane
    @tomnolane
    профессиональный разработчик
    мне понравилась - достойно!
    единственное - поставил бы таймер для компьютера - слишком уж быстро всё делает...
    Ответ написан
  • Как связать facebook post с новостью на сайте?

    tomnolane
    @tomnolane
    профессиональный разработчик
    самый лёгкий способ (без заморочки с получением токена и регистрации приложения + описание логики) это на публикации кликнуть справа в верху на стрелку,
    860f0b7cdaae4c08af4761e41a381329.JPG
    далее нажать "встроить" и перейти в расширенные, чтобы посмотреть/редактировать
    e3b40b95e43d462c80f7d227fe855c3e.JPG
    и вставить код на сайт (очень гибко можно отредактировать сам код)
    47d407845825401fa07b0d4738ed66b6.JPG
    без API, без токена, дёшево и сердито. Это всё возможно со "страницы". С группой такое не проктатит.. т.к. группа (по мнению ФБ) это место общения...
    п.с. встроить публикации с вашей личной страницы можно также, как и со "страницы" )) (извиняюсь за тавтологию)

    п.с.с. не думаю, что создавать специальное API, каждый раз получать валидный токен, разрешать этому API "редактировать/создавать топик" на сайте "удачаная идея"...
    Ответ написан
    Комментировать
  • Передает ли ссылка с wiki-страниц VK свой вес сайту?

    tomnolane
    @tomnolane
    профессиональный разработчик
    нет -> тык
    п.с. для веса сайта - нет
    п.с.с. для отображения в поиске (кол-во) - да
    Ответ написан
    Комментировать
  • Как ограничить использование своего декстоп-приложения (.exe) только тем, кто зарегистрирован у меня на сайте (как это выглядит примерно?)?

    tomnolane
    @tomnolane Автор вопроса
    профессиональный разработчик
    решил пока так...
    Assembly assembly = Assembly.LoadFrom("https://мой_сайт.ru/Library2.dll");
                    Type type = assembly.GetType("Library2.MainWindow");
                    dynamic obj = Activator.CreateInstance(type);
                    Window extern= (Window)obj;
                    exnter .Show();  
    // extern- wpf переделанный в dll

    п.с. но в итоге лучше настроить свой API... если сроки позволяют
    Ответ написан
    Комментировать
  • Как создать свойство зависимости в WPF через разметку XAML?

    tomnolane
    @tomnolane
    профессиональный разработчик
    у вас в шапке указано: x:Class="WpfDependency.MainWindow"

    а про Class1 ничего не сказано.... т.к. наследован от FrameworkElement (не в MainWindow) и wpf не видит....
    подключите общий namespace xmlns:m="clr-namespace:WpfDependency" в шапке....
    и ниже до Grid вставте
    <Page>
     <Page.Resources>
                <Class1 x:Key="blablabla"></Class1 >
            </Page.Resources>
    <Grid DataContext="{Binding Source={StaticResource blablabla}}"....
    // ваш код xaml после чего у mycontrols ставите атрибуты
    </Grid>
     </Page>
    </Window>


    т.е. у вас сейчас Class1 ищет в MainWindow....
    Ответ написан
    1 комментарий
  • Ошибка malformed при загрузке фото в вк через curl?

    tomnolane
    @tomnolane
    профессиональный разработчик
    у API VK есть ограничение - 3 запроса в секунду (любых). Может проблема в том, что много запросов делаете? (получить токен, потом сразу получить сервер для загрузки картинок, загрузить картинку 1, загрузить картинку вторую, сохранить) - и всё это успевается за 1 сек? И из-за этого, при запросе (4 запрос в секунду) на получения адреса сервера для загрузки картинок - возвращается пустая ссылка?
    п.с. если альбом и/или группа не меняется (куда постить) - ненужно вызывать получать перед каждой картинкой метод (получить адрес сервера для загрузки) - можно использовать прежний (при отправке нескольких картинок) (п.с.с. по-моему теперь по новому можно не более 5 картинок за раз....) В любом случае, должно быть не более 3 запросов в секунду при использовании API VK. (я своё приложение сделал не на php конечно, а на с#, и перед каждой загрузкой картинки, я ставлю "паузу" на 450 миллисекунд.
    проблема в $url
    Ответ написан
    4 комментария
  • Загрузка фото в альбом вк, в чем ошибка?

    tomnolane
    @tomnolane
    профессиональный разработчик
    если php версии 7, попробуйте добавить и поставить версию API "v5.62"
    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
    Ответ написан
  • Visual Studio для слабого ПК-какой выбрать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    могу ошибаться, но VS 2015 на 7-ку не устанавливается (минимум по требованиям 8 и выше, т.к. версия c#6-7 у VS2015, win7 не поддерживает c#6-7 версию).
    п.с. этот вывод сделал после того, как хотел установить себе. Так что либо 2012 либо 2013 версию.
    п.с.с. также поддерживаю мнение об Visual Studio Code (легче)
    п.с.с.с. на крайняк - Visual Studio Express (2013)
    п.с.с.с.с. .Net framework 4.5 (минимум 4) - нужно установить
    Ответ написан
  • Когда блокировка вашего аккаунта на facebook'e появилась, какими были ваши действия (какая была причина блокировки вашего аккаунта)?

    tomnolane
    @tomnolane Автор вопроса
    профессиональный разработчик
    bc4d7f7062e54ae29267fb0244bfe9b3.JPG
    аккаунт разблокировали почти спустя 3-ое суток. Отправил паспорт (старое фото... после которого 2 раза менял))) и получил -то, что на картинке)
    п.с. аккаунт не переименовали (хотя где-то читал, что они так делают, если не под настоящим именем зарегестрирован)
    п.с.с. также рекомендую прислушаться к совету Philipp и пользоваться постингом хотя бы через это https://developers.facebook.com/tools/explorer/145...
    Ответ написан
    Комментировать