Dropbox ready! (Perl, Perl..)
Goto page 1, 2  Next
 
Libroom Forum IndexPocketBookPocketBook Free
AuthorMessage

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 27.06.2013 22:47    

UPDATE!!


2013-08-13
Задача решена, программы написаны, см. тут
libroom.net/viewtopic.php?p=1069519#1069519

Пока проект заморожен в текущей рабочей стадии...

______________________________________________

Возможно уже не актуально, но мне удалось портировать
перловский WebService::Dropbox
http://search.cpan.org/~askadna/WebService-Dropbox-1.17/lib/WebService /Dropbox.pm
и
App::dropboxapi
http://search.cpan.org/~askadna/App-dropboxapi-1.12/lib/App/dropboxapi .pm
(это примерно два десятка пакетов зависимостей пришлось вручную)

В результате, у меня идет в командной строке синхронизация "туда-сюда" между Покетом и облаком Дропбокса -- как всех файлов так и указанных директорий... Даже под proxy !!!

Все пакеты и небольшую инструкцию скоро выдам -- пока еще делаю эксперименты и допиливаю адаптацию под Покет.

Но минус -- это авторизация приложения по протоколу OAuth на Dropbox... Ужас тихий... Evil or Very Mad Кто захочет работать с Дропбоксом -- придется читать хотя бы в Википедии:

http://ru.wikipedia.org/wiki/OAuth

Добавлено спустя 11 минут 20 секунд:

вот тут немного ближе описание к Дропбоксу (ну, из тех, что нашлись на русском):
http://blog.amartynov.ru/archives/linux-server-backup-to-dropbox/

Добавил еще (2013-07-02):

OAuth: описание протокола простым и понятным языком
.


Last edited by transient on 13.08.2013 18:22; edited 3 times in total
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 30.06.2013 19:35    

Итак, начнем инструктаж.

1. Идем сюда и на этой ветке форума читаем как и устанавливаем Maxi Perl Distr, где включены все необходимые модули поддержки.

2. Качаем требуемые скрипты и app'ы. На Покете в директории applications (на ext1) создаем папку Dropbox-apps и копируем туда из распакованного архива все файлы. С файлом dpbx.ini еще поработаем...

3. Авторизация приложения на Дропбоксе -- самое нудное..

Будем считать, что аккаунт на Дропбоксе у вас уже есть. Идем по ссылке
https://www.dropbox.com/developers
Логинимся, идем в App Console
https://www.dropbox.com/developers/apps
там выбираем
Create new app
https://www.dropbox.com/developers/apps/create
Выбираем Core
Вписываем имя приложения (любое, желательно уникальное)
Выбираем Permission Type
Full Dropbox
(можно и App Folder -- но у меня тесты не получились и я забросил разборки)
Ок, переходим к новой странице...

На новой странице в разделе General ничего не трогаем.

В разделе Authentication and permission смотрим
App key и App secret. Их надо запомнить и записать в файл dpbx.ini -- сейчас им и займемся.

Жмем Update!

4. В архиве, который вы у меня скачали:
Dropbox-apps-20130630.7z и распаковали, находим файлик dpbx.ini и открываем его на большом компьютере в текстовом редакторе (лучше в фаре, если вы под виндоуз). Предусмотрена возможность его редактировать и на Покете, если у вас есть на Покете редактор Пи.

В этом файлике такие строки

Code:
# This is usual perl script ini file, used by our dropbox scripts.
# Can be edit with any text editor.
$env_proxy = 0; # =1 if we work via proxy and =0 if we don't
$ENV{HTTP_PROXY} = 'https://192.168.1.101:3128'; # proxy URL with port (tested only with https proxy)
$config_file_name = '/mnt/ext1/system/config/dropbox-api.cfg'; # config for original dropbox-api, where it stores the secrets
$log_file_name    = '/mnt/ext1/tmp/log.txt'; # log for quick access of URL with dropbox'es secret token (usually we see it via ftp)
$local_base_name  = '/mnt/ext2/Dropbox/';  # local folder to sync (usually for entire Dropbox)
$remote_base_name  = '/';                  # remote (in Dropbox cloud) folder to sync (usually '/' to sync entire Dropbox)
# important(!!): Strings above must have '/' at the end!
# $local_base_name can be changed to any conviniet folder at the PocketBook
# $remote_base_name can be any Folder in the personal Dropbox cloud 
$key    = 'rkd68sh8kt84f31'; # api key and secret you must got at
$secret = '36fj56hjhfd34s4'; # https://www.dropbox.com/developers
$access_level='f'; # means (potential) access to entire Dropbox (or ='a' -- only to special dir, but not tested)


(гы-гы, указанные тут key и secret -- фейковые, для образца)

Тут прописываем прокси, расположение папки, где будет у вас Дропбокс, если вам оно надо, остальное пока трогать не будем, главное, впишите ваши значения key и secret!!!. Сохраняем (желательно по стандарту Юникс -- фар это умеет делать по Shift-F2)

После редактирования, этот файл тоже копируем в папку
/mnt/ext1/applications/Dropbox-apps
ко всем остальным файлам.

Этот файл можно будет в любое время редактировать на Покете, если у вас установлен редактор Пи, для этого есть утилита configure.app -- можете тоже глянуть в нее текстовым редактором и подправить местоположением редактора Пи.

5. Продолжаем авторизацию с Дропбоксом на Покете.
Подключаем по Wi-Fi сеть. Запускаем dropbox-setup.app

Выскочит консольное окно и если связь будет нормальной, то вам прилетит ссылка, примерно такого вида
https://www.dropbox.com/1/oauth/authorize?oauth_token=u........R&oauth _callback=

Эту ссылку надо вбить в браузере на большом компьютере, залогиниться под своим именем и паролем и дать "добро".

У вас будет всего 80 сек!!!

Для удобства, копия ссылки будет скинута на Покете
тут: '/mnt/ext1/tmp/log.txt', и кстати, это расположение можно задать строкой

$log_file_name = '/mnt/ext1/tmp/log.txt'

в файле dpbx.ini.

Если за 80 сек не успели, повторяем этот шаг. Если все прошло успешно -- то это будет уже почти навсегда.

Данные с секретами и кодами авторизации будут хранится тут:

/mnt/ext1/system/config/dropbox-api.cfg

Для других они похоже будут бесполезны (если не супер-хакер), например, если я проходил похожую процедуру целиком на большом компьютере, а потом кидал этот файл на Покет -- авторизация уже не работала.

6. Все теперь работаем. В отличие от большого компьютера, где синхронизация идет сама по себе, тут нам надо ее вызывать самим. Причем синхронизации будет две: от Дропбокса на Покет и наоборот.

Сначала запускаем утилиту sync2local.app -- и к нам прилетят по умолчанию все файлики и директории из облака Дропбокса. Если вам все не надо -- впишите в файле dpbx.ini

$remote_base_name = '/';

только нужную папку.

7. Теперь, закиньте что-либо в папку Drobbox на Покете (по умолчанию, она тут:

$local_base_name = '/mnt/ext2/Dropbox/';

и запустите утилиту sync2dropbox.app -- утилита определит, какой файлик новый и сама его закинет в облако Дропбокса.

8. Все утилиты

configure.app
dropbox-setup.app
sync2dropbox.app
sync2local.app

доступны в графическом режиме в папке
Dropbox-apps в applications

9. всё. Ногами не бить, если что-то пропало или не пашет!! Работало над этим до фига народу в сообществе Перла в разное время (я про пакеты в зависимостях), поэтому должно быть надежно, а непосредственный автор
Shinichiro Aska
https://github.com/s-aska/dropbox-api-command
-- я сделал только адаптацию и очень упростил его утилиту dropbox-api (она тоже доступна под Потермом, но к сожалению, везде, где требуется STDIN -- все вешается...)

10. За идиотскую авторизацию OAuth на Dropbox -- это не к нам...

11. Удачи, пишите, если у кого получится.

...................................................................... ...............
P.S. (2013-07-03) Авторизацию действительно можно упростить, если кто-то "за всех впишется" (до 100 юзеров ДропБокс разрешает).Вот тут я немного про это написал. (andrufka, спасибо за полезную дискуссию)


Last edited by transient on 03.07.2013 09:50; edited 3 times in total
 
View user's profile ^

pal
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jan 2012
Posts: 1510



Posted: 01.07.2013 16:25    

transient
Круто! Very Happy
Предлагаю еще немного упростить жизнь пользователям (не каждый осилит с первого раза пройти квест из 9 левелов Wink)

1. Шаг №2 - с этим бы справился скрипт-инсталятор типа самораспаковывающегося архива.
2. Для копирования секрета с ББ на читалку предлагаю сделать скрипт на php (или perl'е Wink ), который будет доступен с ББ. Согласитесь, скопипастить 2 строки из одного окна в другое - это удобнее, чем шаги 3-4-5 Rolling Eyes Мини-веб-сервер есть Wink


PS:
Quote:
Работало над этим до фига народу ... в разное время .. поэтому должно быть надежно

Вдохновляет Wink
_________________
Idea Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины.
 
View user's profile ^

maxlilt
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 14 Feb 2012
Posts: 327


Location: Samara, Russia

Posted: 01.07.2013 19:25    

Чтобы пользователю, каждому, заказывать secret - это сильно ограничит число желающих...
_________________
PocketBook PRO 912 @2.1.3 + FBR180 + CR3; Onyx Boox I62HD; the new iPad.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 01.07.2013 21:03    

Друзья, я рад, что мой топик вас так порадовал! Very Happy

pal
Свежий взгляд на проблему -- это половина решения, спасибо! Оправдаюсь, что это только версия 0.01. Хватит ли сил и желания пилить дальше -- не знаю, у меня все уже работает и я вполне доволен.

По поводу Ваших замечаний:

1. "скрипт-инсталятор типа самораспаковывающегося архива" -- эту технологию я у Вас уже взял на заметку, но надо ведь ее тоже пилить. Наверно, это самое пока реализуемое..

2. На счет копипаста -- пока не очень понятно, как деталях реализовать. Ведь пользователь может разместить секреты в другом месте. Значит надо наладить обмен инфы ББ с Покетом. Можно конечно на ББ сделать скриптик на Perl'е, который сам запросит данные у Покета, сам дернет URL... но блин все равно без нормального браузера не обойтись, сам Перл-скрипт не пройдет все шаги авторизации... Да и не у всех Perl на ББ есть.

Кстати, я хотел сначала передавать URL в Покетовский веббраузер сразу из скрипта setup'а -- но что-то так все дико тормозило...

Про "дофига" -- я по началу тоже боялся нестабильности, торомозов, а главное -- утечек, троянов, закладок. Но хотя автор один, все необходимые технологии пилило сообщество еще задолго до ДропБокса, и они -- надежные. Код этого японца очень грамотен, вижу, что он на несколько порядков лучше знает и сам Perl, и библиотеку современных модулей, чем ваш собеседник.

И в технологии OAuth есть плюс: наши скрипты логин и пароль, а значит и контроль над аккаунтом все-таки не получают.

maxlilt
Тут похоже, пока без вариантов. Также просто, как на ББ станет, если только портируют Дропбокс Демона на arm. А юзеры уже несколько лет просят разрабов это сделать, толку нема:

https://forums.dropbox.com/topic.php?id=2766
https://forums.dropbox.com/topic.php?id=7443&page=2&replies=53#post-17 6903
https://www.dropbox.com/votebox/358/linux-arm-support

Для сторонних продуктов Dropbox API большей частью предлагает OAuth в разных вариантах.

Но у авторизации OAuth на Dropbox тоже есть плюсы!
Про один -- я уже сказал выше.
Другой: очень похоже, что мы так можем синхронизовать неограниченное количество аккаунтов на одном устройстве (но я не проверял Wink ). Попробуйте-как вы сделать это штатным клиентом на ББ
Rolling Eyes

"это сильно ограничит число желающих" -- ну мы же с Вами не ищем рефералов для прокачки аккаунта. Кто захочет -- пройдет. Жаль что нет хорошего SDK на C/C++. Какой-то на Qt правда уже есть: http://lycis.github.io/QtDropbox/ но похоже ему пока до Perl'овского еще далековато.
 
View user's profile ^

pal
Член клуба The eBook

Член клуба The eBook



Joined: 08 Jan 2012
Posts: 1510



Posted: 02.07.2013 11:08    

transient
Настройки прокси можно вычитать из файла system/config/network.cfg Rolling Eyes (параметры proxy, proxy.host, proxy.port, proxy.username, proxy.password)

Как я вижу упрощение авторизации.
На читалке запускается веб-сервер (читалка подключена к тому же роутеру, что и ББ).
На ББ заходим броузером на http://192.168.0.101/dropbox-config.php - нам нужно задать только значения key и secret - запускаем второе окно броузера, заходим на dropbox.com, получаем, копируем.

Что мешает из того же скрипта (dropbox-config.php) запустить dropbox-setup.app, получить волшебную ссылку, открыть еще одно окно браузера и перейти по ней? Cool По такой схеме вложиться в 80 сек значительно легче Wink
_________________
Idea Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 13:28    

pal

1. Мне вот постоянно приходится иметь дело с proxy -- и на работе, и дома. Однако, так как на Покете, кроме обновления, больше ничего (ну, по крайней мере, qt-веббраузер) с прокси не работает, -- то я, например, в system/config/network.cfg прокси не прописываю -- смысла нет. Кроме того, удобно все важные настройки иметь в "одном флаконе" (и которые парсятся у меня просто одной функцией do('dpbx.ini') -- ведь dpbx.ini является перл-скриптом по совместительству). В общем, будет прокси более-менее юзабелен на Покете, тогда и смысл будет -- ведь обещали-же в прошивке-4.1???

2. Насчет "блэкджэка и...", Smile ну т.е. насчет "веббраузера и поэтесс, т.е. инсталлятора и запуска авторизации"... -- мне эта идея в целом нравится. Наверно так и надо сделать в следующем релизе. Возражения тут есть такие. Не хотелось бы громоздить технологии -- пока я только Perl'ом обошелся, а в PHP я не очень силен, впрочем можно сделать на Покете cgi-perl (Мини-вебсерверу должно быть фиолетово). Ставить теперь принудительно придется и веб-сервер на Покет? Ну может быть сделать блэкджеты опционально??.. Хотя удобство несомненно будет.

3. Все-таки, основное неудобство -- это замороченная авторизация на самом ДропБоксе -- именно сама странная идея OAuth. Но тут пока как раз неясно что и как автоматизировать... Вроде бы в разных форумах что-то проскальзывало на сей счет. Но надо в доках читать.. Confused

4. Кстати, если кто силен в PHP, то можно все утилиты сделать на нем. Есть официальное SDK:
https://www.dropbox.com/developers/core/start/php
Думаю, вот этот вариант как раз был бы красив. Rolling Eyes
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 02.07.2013 14:48    

Как-то странно это выглядит, что каждому пользователю нужно заводить свои App key и App secret. Это ж параметры приложения. Они должны быть едиными у всех. Что-то тут не так Rolling Eyes
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 14:56    

andrufka

Попробуйте тут почитать:

OAuth: описание протокола простым и понятным языком

Протокол OAuth, насколько я понимаю, позволяет делегировать разным приложениям и популярным веб-сервисам часть полномочий от "держателя ресурсов". Если Вы им отдадите привычные "логин" и "пароль", то завтра Ваш аккаунт уже может стать и не Ваш (вот откуда Вы знаете, что японец-разраб не хочет нас обмануть?? Ведь только с моих слов пока..).

Отсюда и извращения... да и непривычно...

Как я понимаю, можно было и сертификаты раздавать -- но пока раздают секреты и ключики.
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 02.07.2013 15:12    

transient wrote:
andrufka
Попробуйте тут почитать:


Я-то почитаю Smile Но мне кажется, вы прочитали не внимательно. У меня есть приложения, которые используют OAuth. При этом не требуется регистрировать свои App key и App secret. Я про них вообще первый раз слышу. Когда клиент OAuth обращается на сервер за регистрацией, вы выдаёте разрешение на подключение этого приложения к вашему аккаунту. Получаете уникальный ключ, который вбиваете в приложение. Идентификация идет по этому ключу, который у каждого будет свой. Зачем ещё уникальные App key и App secret?
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 15:24    

Дык это разве не про них и речь?
(я встречал разные написания этих терминов -- еще и такие: "api key" и "api secret")

Почитайте заодно и на ДропБоксе:

https://www.dropbox.com/developers/apps/create

Заодно нам расскажете, если можно упростить. Думаю, все будут только за.

Я могу здорово ошибаться... Sad
Но разве не у каждого юзера клиент (собственный на собственном Покете) должен получить свои ключ и секрет от собственного аккаунта (одноразово!)? И его Вы и вобъете в своих собственных настройках. Что не так? У меня -- работает. Могу скинуть логи или скрины.

В любом случае -- я буду рад все упростить.
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 02.07.2013 15:36    

transient wrote:
Дык это разве не про них и речь?

Какая-то странная реализация получается.
Вот, например, как работает регистрация на Gmail:
- в клиенте вы запрашиваете регистрацию
- клиент перенаправляет вас на вход в аккаунт Gmail с сообщением, что сторонняя служба хочет получить доступ к вашей учётной записи
- логинитесь в Gmail
- нажимаете кнопку разрешить доступ
- получаете код доступа
- вбиваете этот код в приложении-клиенте.

Всё, никаких кодов приложения регистрировать по ссылке для разработчиков не нужно. В ДропБоксе не так?

Posted after 15 minutes 23 seconds:

transient
Есть подозрение, что ключ доступа вы получаете в параметре oauth_token из ссылки, которую возвращает сервер дропбокса. Т.е. вы сначала получаете код доступа, а потом в течение 80 сек должны его одобрить. Наличие файла /mnt/ext1/tmp/log.txt обязательно для авторизации. Можете проверить это, перенеся его на другое устройство.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 16:07    

Мне кажется, Вы правы, и для ДропБокса так наверно (?) можно сделать -- по крайней мере сетевые сервисы типа https://write-box.appspot.com/ именно так и поступают. Юзер на страничке вбивает только пароль и логин, заходит на аккаунт и ему предлагают указанному приложению дать добро.

Википедия говорит, что Google принимал участие в разработке OAuth.
Но где-то встречал, что они потом что-то свое стали использовать... В пакетах Perl есть отдельный OAuth для Google.

Видимо мне попался под руки "девелоперский" вариант:
https://www.dropbox.com/developers/core

С другой стороны, упрощенная версия ДропБоксом предлагается (только??) для вебприложений:
https://www.dropbox.com/developers/chooser

(там есть еще вариант простого API для синхронизации -- но опять только под Андроид и иОС)

Надо теперь понять, можно ли в Core API прикрутить простую версию для простых юзеров (если это конечно возможно). Если поможете и найдете как -- большое спасибо!

https://www.dropbox.com/developers/reference

P.S. да, а еще ограничение могут быть самого SDK, что я взял за основу. Ну тут мне разобраться проще будет.

Добавлено спустя 7 минут 33 секунды:

andrufka
/mnt/ext1/tmp/log.txt и 80 сек -- это мои творения (Вызванные причинами, о которых в другой раз)... Wink
Ни японца, ни Дропбокса...

Как идет механизм у меня, и что куда посылаю -- я знаю хорошо.

Другой вопрос -- нужно ли это нам и можно ли без этого обойтись.

Надо читать аккуратно английский мануал. Похоже, что простой вариант -- только для вебсервисов, которые именно так (сложно) и регались в самом начале, а потом по упрощенке лезут к юзерам.

Кстати, а чтобы проверить факт -- вот такой довод. А Вы знаете альтернативные десктопные клиенты для ДропБокса? Ведь API -- опубликован, бери и пиши. Я знаю только надстройки над ДропБокс Демоном. Есть скрипт-надстройка на Питоне, и кстати, в него сертификат бинарный всшит. Довод конечно, мало что доказывает, но вопросом можно поинтересоваться, как в других SDK решают вопрос авторизации.
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 02.07.2013 16:37    

transient wrote:
/mnt/ext1/tmp/log.txt и 80 сек -- это мои творения (Вызванные причинами, о которых в другой раз)... Wink
Ни японца, ни Дропбокса...

Ну тогда вам и карты в руки Smile

transient wrote:
Кстати, а чтобы проверить факт -- вот такой довод. А Вы знаете альтернативные десктопные клиенты для ДропБокса? Ведь API -- опубликован, бери и пиши. Я знаю только надстройки над ДропБокс Демоном. Есть скрипт-надстройка на Питоне, и кстати, в него сертификат бинарный всшит. Довод конечно, мало что доказывает, но вопросом можно поинтересоваться, как в других SDK решают вопрос авторизации.

Я пытаюсь рассуждать логически. Ни один пользователь приложения не пойдёт по ссылкам для разработчика, чтобы регистрировать уникальные для него коды. Значит это должно происходить другим способом. Как именно в данном случае, пример с Gmail есть выше. Тут должно быть что-то подобное. Сомневаюсь, что родной клиент дропбокса регистрирует индивидуальные коды приложения для каждого пользователя.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 17:03    

Не, ну чисто поговорить -- я не хочу, время мне жалко. Вот если бы кто помог с осваиванием мануала на англицком или бы действительно знал OAuth...

1. Мне и так карты в руки. Я сделал, у меня работает, в приниципе, мне ничего больше и не надо. Авторизацию OAuth придумал не я. В том SDK, что я взял -- было так. Я уже посмотрел другое SDK на Perl (от русских, кстати) -- там вопрос авторизации тактично обходят: типа допустим вы уже получили ключ и секрет.

2. Ваш пример c Gmail -- похоже не годится. Я тоже привел пример https://write-box.appspot.com/ -- там все как в Вашем примере с Gmail. Но, видимо это верно только для веб-сервисов. Сделает PocketBook Inc такой вебсервис -- (ну и клиент, ибо браузер тяжек) будем через них легко логиниться и будет всем щастье.

Вопрос (для меня) с декстопными приложениями. Можно ли для них сделать облегченную авторизацию?
Я ответа пока не знаю -- Вы внушили мне некоторую надежду, но кроме Вашей "логики" -- ничего.

Покет в данном случае -- это как декстопное приложение. Пока, то что мы имеем -- это девелоперский подход (для серверов).

3. OAuth допускает еще работу по сертификатам. Родной клиент дропбокса (дропбокс демон в Линуксе) имеет вшитый сертификат. В принципе, из дропбоксового питонового скрипта можно вытащить некий сертификат (правда зачем и как пользоваться?) Итак, альтернативные веб-приложения для ДропБокса есть, а десктопных нет.

Вот так. Буду рад помощи.
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 02.07.2013 18:13    

transient wrote:
Не, ну чисто поговорить -- я не хочу, время мне жалко.

Ну и зря. Тем более, что это дало вам пищу для размышлений. Мне, например, не жаль потраченного времени, хотя у меня нет ни аккаунта на дропбоксе, ни интернета в книжке Cool

transient wrote:
2. Ваш пример c Gmail -- похоже не годится. Я тоже привел пример https://write-box.appspot.com/ -- там все как в Вашем примере с Gmail. Но, видимо это верно только для веб-сервисов.

То, что я привёл в примере про Gmail - это именно десктопное приложение. Никаких дополнительных сервисов.

transient wrote:
Пока, то что мы имеем -- это девелоперский подход (для серверов).

Скорее всего проблема в выделенном - вы взяли API для серверов. Там каждое приложение - уникально. Возможно, для обычных приложений нужно другое API.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 02.07.2013 19:21    

Пока шел домой вспомнил, что я уже делал эксперименты в самом начале, когда разбирался с Perl Dropbox SDK. Я брал и весь файл с секретами и брал отдельно его части с большого компьютера и кидал на Покет. Фокус не проходил. Я не знаю как Дропбокс распознавал, но авторизация не шла. ТОлько заново. Возможно, в самом начале, я что-то еще не понимал, возможно кто-нибудь повторит и у него такой фокус получится.

Возможно при регистрации приложения у Дропбокса -- надо было указать большее число клиентов. Я выбрал одного (согласитесь, странная опция у ДропБокса есть для "серверов").

Я не знаю ни одного десктопного приложения GMail. Либо обычный майл-клиент через POP3/IMAP/SMTP, либо веб-сервисы. Покажите Ваш пример конкретно (http://gmail.com -- Веб-сервис). И Вы не описали авторизацию самого сервиса в Гугле (ну если это не сервис Гугля, а лично Ваш себсервис) -- а она как раз такая же сложная.

Про API -- Вы повторили мою мысль своими словами. Только неясно, что такое "обычные приложения" (ну ссылками в рефернс у ДропБокса и описалово) и как реализовать хотелку "возможно". Пока у ДропБоксов в доках на API я ничего не нашел.

------------------------------------------------------------

Добавлено спустя 2 часа 53 минуты 23 секунды:

andrufka

Действительно, Вы оказались в самом первом (главном для меня) правы. Я дома почитал доки и сделал опыты.

Итак, можно действительно сделать следующее. Например, я получаю девелоперские App key и App secret для своего приложения и разрешаю его использовать не себе одному как я делал, а до <100 клиентов (это ДропБокс разрешает девелоперам).

Потом эти App key и App secret прописываю в настройках и даю на форуме всем.

Все другие не парятся, едят что дают -- все работает, нужна только авторизация (логин/пароль) на Дропбоксе и "Добро" дать там. Никакого геморроя больше не надо.

Щастье. Минус -- меня в ДропБоксе вычисляют и банят как только юзеров станет более 100.

Вопрос только административный -- дать свои App key и App secret.

------------------------------------------------------------

Другого пути пока я не нашел. Надо посмотреть еще с сертификатами. Может что получится там.
 
View user's profile ^

andrufka
Активный участник форума

Активный участник форума



Joined: 08 Sep 2009
Posts: 192



Posted: 03.07.2013 10:58    

transient wrote:
Я не знаю ни одного десктопного приложения GMail. Либо обычный майл-клиент через POP3/IMAP/SMTP, либо веб-сервисы. Покажите Ваш пример конкретно (http://gmail.com -- Веб-сервис). И Вы не описали авторизацию самого сервиса в Гугле (ну если это не сервис Гугля, а лично Ваш себсервис) -- а она как раз такая же сложная.

Приложение, о котором я писал выше, - Google Mail Notifier для браузера Opera:
Quote:

Google Mail Notifier это маленькое, простое и быстрое расширение которое показывает количество непрочитанных сообщений в вашем почтовом ящике Gmail при помощи значка на тулбаре и их заголовки во всплывающем окне.

Google Mail Notifier использует OAuth для авторизации в почтовом ящике GMail, при этом расширение не может получить доступ к вашему паролю или другой личной информации из вашего аккаунта Google.

Запросите код проверки для этого расширения нажав на кнопку и вcтавьте его в поле расположенное ниже.

Процесс авторизации я уже описывал выше.

OAuth это не закрытое API какой-то одной компании. У Дропбокса скорее всего стандартная его реализация. Возможно, есть различные варианты API OAuth для разных применений. Тут уж я вам не помогу, поскольку не знаю.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 14.07.2013 00:29    

Я сделал новую версию. С с самораспаковывающимся инсталлятором, ан-инстоллером, собственным перловым-вебсервером и упрощенной авторизацией на Dropbox.

Теперь нужно:

0. Установить Perl !!!

1. Скачать установщик:
https://docs.google.com/file/d/0B2QTYrDfipLEejg0RlVCR19KblE/edit?usp=s haring

2. Кинуть его в Приложения на Покет, запустить. (Папку Приложения обновить вручную)
(если кому-надо, подправьте настройки, есть конфигуратор на базе текстового редактора Пи)

3. Запускаем браузер на Десктопе.
4. Запустить в папке Dropbox-app приложение dropbox-setup и следовать инструкции. На декстопе вбиваем адрес Покета типа http://192.168.1.101:8888/ (будет показан ваш родной)

5. Откроется страничка для перехода на страницу авторизации Дропбокса, там дать добро.

У вас 80 сек!! (можете добавить в конфигураторе. Сколько ДропБокс будет терпеть, не знаю, попробуйте минуты 3 Smile

6. Всё. Далее для синхронизации -- все осталось как было.

=========================

В следующих версиях попробую большую часть работы по настройке переложить на вебсервер/веббраузер.

Спасибо всем за идеи. Надеюсь они действительно были полезны.

P.S. DropBox немного изменил прохождение квеста для девелоперов (что был ранее мной описан). Наверно, стало немного проще. Но чуток по другому.
 
View user's profile ^

transient
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 10 Mar 2012
Posts: 310



Posted: 13.08.2013 18:13    

Интересно, прошёл месяц, и только один кто-то (по статистике ДропБокса) воспользовался новой версией, с легкой авторизацией. Неужели сервис не востребован??

Ну тогда ладно, развитие проекта будем пока считать замороженным -- работает и ладно Smile
 
View user's profile ^
Libroom Forum IndexPocketBookPocketBook FreeAll times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021