Добавление события к “определенному” Google Calender with GData API

Я пытаюсь добавить событие к определенному календарю в Google Календаре, и я просто не нахожу как. Вот мой код:

        CalendarService service = new CalendarService("MyTEst");
        service.setUserCredentials("Username", "Password");
        EventEntry entry = new EventEntry();

        // Set the title and content of the entry.
        entry.Title.Text = "title";
        entry.Content.Content = "test";

        // Set a location for the event.
        Where eventLocation = new Where();
        eventLocation.ValueString = "Location";
        entry.Locations.Add(eventLocation);

        When eventTime = new When(DateTime.now, DateTime.now.AddDays(2));
        entry.Times.Add(eventTime);

        Uri postUri = new Uri("http://www.google.com/calendar/feeds/default/private/full");

        // Send the request and receive the response
        AtomEntry insertedEntry = service.Insert(postUri, entry);

Кто-либо может выручить меня с этим?

Править

Возможно, я должен упомянуть, что этот fonctionnability только доступен для администратора сайта, которые хотят к easly, добавляет рандеву и отмечает к его Google Календарю, таким образом, я автоматически прошел проверку подлинности, это с "hardcoded" оценивает, таким образом, я уверен, что имя пользователя и пароль в порядке.

5
задан Simon Dugré 2 February 2010 в 21:18
поделиться

1 ответ

Простой подход к этому состоит в итерации через исходный массив, создавая новый по мере следования:

function InsertBeforeKey( $originalArray, $originalKey, $insertKey, $insertValue ) {

    $newArray = array();
    $inserted = false;

    foreach( $originalArray as $key => $value ) {

        if( !$inserted && $key === $originalKey ) {
            $newArray[ $insertKey ] = $insertValue;
            $inserted = true;
        }

        $newArray[ $key ] = $value;

    }

    return $newArray;

}

Затем просто вызовите

$array = InsertBeforeKey( $array, 'd', 'c', 3 );
-121--1515964-

В Solr RequestHandler по существу является плагином (модулем логики), который обрабатывает входящие запросы определенным образом.

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

Обычно обработчики запросов в Solr конфигурируются как определенные конечные точки (т.е. URL), но не выбираются с помощью параметра qt . Однако конкретные обработчики поиска могут использовать параметр типа запроса для обработки запроса определенным способом (то есть один обработчик может иметь возможность обрабатывать различные типы запросов).

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

Для запросов, отличных от используемого по умолчанию SeureHandler, наиболее часто используемым обработчиком запросов является DisMaxRequestHandler ( qt = dismax ), который по существу обеспечивает поиск по нескольким полям с использованием различных весов на основе значимости полей. Это часто называют поиском «Google как».

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

Обратите внимание на то, что в качестве источника путаницы DisMaxRequestHandler в более новых версиях Solr фактически предоставляется с типом запроса dismax .

Обработчики конфигурируются в solrconfig.xml :

<requestHandler name="dismax" class="solr.SearchHandler" >
<lst name="defaults">
 <str name="defType">dismax</str>
 <str name="echoParams">explicit</str>
 <float name="tie">0.01</float>
 <str name="qf">
    id^10.0 keyword^1.5 title^1.0 region^0.5 country^0.5 city^0.5
 </str>
 <str name="pf">
    keyword^1.5 title^1.0 region^0.5 country^0.5 city^0.5
 </str>
 <str name="bf">
 </str>
 <str name="mm">
    2&lt;-1 5&lt;-2 6&lt;90%
 </str>
 <int name="ps">100</int>
 <str name="q.alt">*:*</str>

 <!-- example highlighter config, enable per-query with hl=true -->
 <str name="hl.fl">text features name</str>
 <!-- for this field, we want no fragmenting, just highlighting -->
 <str name="f.name.hl.fragsize">0</str>
 <!-- instructs Solr to return the field itself if no query terms are
      found -->
 <str name="f.name.hl.alternateField">name</str>
 <str name="f.text.hl.fragmenter">regex</str> <!-- defined below -->
</lst>

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

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

Составители ответов - это плагины (модули логики), которые обеспечивают способы и средства записи ответов в определенных форматах. В настоящее время эта концепция применяется, главным образом, к поискам, где вы будете иметь дело с производными QuureResponseWriter, которые, в свою очередь, будут выбраны параметром формата ответа wt (в запросе).

Если вы работаете с PHP, то вам, безусловно, будет интересно генерировать дружественные PHP ответы на ваши запросы, используя wt = php или wt = phps .

Ответ php можно оценить:

$code = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=php');
eval("\$result = " . $code . ";");
print_r($result);

и ответ phps можно прочитать с помощью механизма сериализации PHP:

$serializedResult = file_get_contents('http://localhost:8983/solr/select?q=iPod&wt=phps');
$result = unserialize($serializedResult);
print_r($result);

Есть поддержка для других (например, Ruby, Python,Java Binary и т.д.), которые по существу были построены, чтобы облегчить для разработчиков интеграцию SOLR в их веб- прикладной с использованием механизмов, которые быстрее, чем синтаксический анализ XML или JSON.

Однако существуют и другие типы ResponseWriter, которые фактически преобразуют ответ на основе шаблона (например, Velocity) или преобразования (например, XSLT). Это может быть полезно в определенных ситуациях, когда не требуется зависеть от другого приложения для обработки результатов запроса (например, XSLT непосредственно в XHTML).

Модули записи ответов также конфигурируются в solrconfig.xml , как правило, можно включить те, которые интересуют вас, например:

<queryResponseWriter name="xml" class="org.apache.solr.request.XMLResponseWriter" default="true"/>
<queryResponseWriter name="json" class="org.apache.solr.request.JSONResponseWriter"/>
<queryResponseWriter name="php" class="org.apache.solr.request.PHPResponseWriter"/>
<queryResponseWriter name="phps" class="org.apache.solr.request.PHPSerializedResponseWriter"/>

Наиболее эффективный способ их использования зависит от вашей среды и того, чего вы хотите достичь. Очевидно, если вы находитесь в PHP, phps может дать вам лучшие (легкий доступ через язык) и более быстрые (встроенный механизм сериализации, менее подробный) результаты. Если в Javascript, json может быть просто способ идти и т.д.

Вы видите, SOLR является мощным и универсальным plattform:) Если вы хотите понять, как пройти через джунгли, вы можете обратиться к какой-нибудь книге, как «Solr 1.4 Enterprise Search Server» (хотя я не уверен, что он действительно делает лучшую возможную работу в качестве введения). Многие вещи вы можете лучше всего выяснить методом проб и ошибок, а также терпение и некоторые онлайн-помощь.

Надеюсь, это поможет вам уйти.

-121--1384555-

Ваш код работает с календарем Google по умолчанию для указанного имени пользователя и пароля. (IE использует календарь по умолчанию для username@gmail.com) Это видно, так как URI указывает на «/feed/default/private ». Если вы хотите опубликовать событие в другом календаре, имя пользователя должно быть авторизовано для публикации в этом календаре, и вам нужно отправить в ЭТО календари private uri.

ПРАВКА: По умолчанию этот частный URL-адрес имеет формат « http://www.google.com/calendar/feeds/CALENDAR_ID/private/full »

Для поиска идентификатора календаря используется следующий адрес календаря на странице параметров настройки календаря в Google Calendars. Он будет выглядеть так:

«* * * * * * * * * * * * * * * * * * * * * * * * * @ group.calendar.google.com»

Окончательный URL-адрес:

EDIT: « http://www.google.com/calendar/feeds/ * * * * * * * * * * * * * * * * * * * * * * * @ group.calendar.google.com/private/full»

Это произойдет в вашем Uri postUri = new Uri ();

EDIT:

my Ты на самом деле не должен этого делать. Я проверил, что могу успешно отправить сообщение во вторичный календарь, удалив закрытый ключ.

6
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: