Anybody please clarify whether gtalk supports PEP(Personal Eventing Protocol- PubSub mechanism). Because in my WP7 app getting error as feature not implemented.
Example:
<?xml version="1.0" encoding="UTF-8"?>
<iq from="msankeshwari#gmail.com/phoneFC07C39F" id="dcc3e8ea-5a40-4401-8843-9db4dd682b78" type="set">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<publish node="http://jabber.org/protocol/geoloc">
<item id="lastlocation">
<geoloc xmlns="http://jabber.org/protocol/geoloc">
<lat>47.64483</lat>
<lon>-122.141197</lon>
<acurracy>0</acurracy>
<timestamp>2012-09-03T18:52:24.592+05:30</timestamp>
</geoloc>
</item>
</publish>
</pubsub>
To determine if GTALK supports PEP or not, you need to refer Determining Support section of Personal Eventing Protocol (XEP-0163). As per the specs I sent following stanza to my own bare jid:
<iq xmlns="jabber:client" type="get" from="jabberxmpplibrary#gmail.com/jaxl#0482f1a54bd2b72a91a384663b1f14ba" to="jabberxmpplibrary#gmail.com" id="3">
<query xmlns="http://jabber.org/protocol/disco#info"></query>
</iq>
and received following response stanza:
<iq to="jabberxmpplibrary#gmail.com/jaxl#0482f1a54bd2b72a91a384663b1f14ba" from="jabberxmpplibrary#gmail.com" id="3" type="result">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="account" type="registered" name="Google Talk User Account"/>
<feature var="http://jabber.org/protocol/disco#info"/>
<feature var="http://jabber.org/protocol/disco#items"/>
<feature var="msgoffline"/>
</query>
</iq>
which indicates google-talk doesn't support PEP since server didn't return an identity of pubsub/pep on behalf of the account.
Related
I am trying to get single instances of Recurring events from Google CalDav Api. I am using the following report request to get single instances
<?xml version="1.0" encoding="utf-8" ?>
<c:calendar-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop>
<d:getetag />
<c:calendar-data >
<c:expand start="20210705T000000Z" end="20210805T000000Z" />
</c:calendar-data>
</d:prop>
<c:filter>
<c:comp-filter name="VCALENDAR" >
<c:comp-filter name="VEVENT" >
<c:time-range start="20210705T000000Z" end="20210805T000000Z" />
</c:comp-filter>
</c:comp-filter>
</c:filter>
</c:calendar-query>
The request is made to the url https://apidata.googleusercontent.com/caldav/v2/{calendarID}/events
but the result is not returning single instances of recurring events. Google CalDav Api does support rfc4791 according to https://developers.google.com/calendar/caldav/v2/guide
Both the Outlook App for iOS and Android don't seem to respect the /autodiscover.xml file that normally is used to provide the mail settings required for a given mail address.
I can not find any information about this anywhere online. I am sure things work perfectly when you want to autoconfigure an Exchange environment, but that is not what I am talking about here.
Our setup (that works correctly for the Outlook 365 desktop software):
We host a file on https://[domain]/autodiscover/autodiscover.xml
That content looks as follows:
<?xml version="1.0" encoding="utf-8" ?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
<User><DisplayName></DisplayName></User>
<Account>
<AccountType>email</AccountType>
<Action>settings</Action>
<Protocol>
<Type>IMAP</Type>
<Server>mail.server.nl</Server>
<Port>993</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
<Protocol>
<Type>POP3</Type>
<Server>mail.server.nl></Server>
<Port>995</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<SSL>on</SSL>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
<Protocol>
<Type>SMTP</Type>
<Server>mail.server.nl></Server>
<Port>587</Port>
<DomainRequired>off</DomainRequired>
<SPA>off</SPA>
<Encryption>TLS</Encryption>
<AuthRequired>on</AuthRequired>
<LoginName></LoginName>
</Protocol>
</Account>
</Response>
</Autodiscover>
And after I configure info#[domain] I verified that this file is indeed accessed!
Notes:
I also tried to set up SRV records. But also that had no effect.
The tool that previously existed from Microsoft to test autodiscovery issues does no longer exist.
Anyone knows what is going on?
I am currently working on a Gmail Contextual Gadget for a non-profit organization.
We followed the official Google tutorials on https://developers.google.com/gmail/contextual_gadgets with the goal of building a Hello World app.
We did the following:
Create an app on https://console.developers.google.com/
Activate Google Marketplace SDK
Activate GMail contextual gadget with appropriate Extractor and Gadget URLs.
Deploy the app for the Non-Profit organization users.
Send us emails containing "Hello World".
However, we are not able to make it work (it should print Hello World below the emails). We checked our servers hosting the XMs, and Google definitely hits our gadget_helloworld.xml file.
Hereby are the files content. Could someone please give a hand on this subject?
It is hard to find up to date documentation on this topic, as a lot of things changed with the Google API. I think it would be helpful for the community to give an open source working sample of code updated on last-2015.
Best,
Content of the Extractor - manifest_helloworld.xml
<?xml version="1.0" encoding="UTF-8"?>
<ApplicationManifest xmlns="http://schemas.google.com/ApplicationManifest/2009">
<script id="tinyhippos-injected" />
<Extension id="HelloWorldExtractor" type="contextExtractor">
<Name>Hello World Extractor</Name>
<Url>google.com:HelloWorld</Url>
<Triggers ref="HelloWorld" />
<Scope ref="emailBody" />
<Scope ref="emailSubject" />
<Container name="mail" />
</Extension>
<Extension id="HelloWorld" type="gadget">
<Name>HelloWorld Gadget</Name>
<Url>XXXX_MY_DOMAIN/gadget_files/gadget_helloworld.xml</Url>
<Container name="mail" />
<!-- Uncomment this to enable Caja. -->
<!-- Param name="caja" value="enabled"/> -->
</Extension>
<Scope id="emailBody">
<Url>tag:google.com,2010:auth/contextual/extractor/BODY</Url>
<Reason>Necessary for reason 1</Reason>
</Scope>
<Scope id="emailSubject">
<Url>tag:google.com,2010:auth/contextual/extractor/SUBJECT</Url>
<Reason>Necessary for reason 2</Reason>
</Scope>
</ApplicationManifest>
Content of the Gadget - gadget_helloworld.xml
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<script id="tinyhippos-injected" />
<ModulePrefs title="Hello World" description="Matches and echoes 'Hello World' string in emails" height="20" author="ACME" author_email="test#example.com" author_location="Bermuda">
<!-- Declare feature dependencies. -->
<!--
This one is not specific to Gmail contextual gadgets.
-->
<Require feature="dynamic-height" />
<!--
The next feature, Caja, is optional, and is supported for
use only within test domains. Uncomment the tag only for
non-production gadgets.
-->
<!-- <Require feature="caja"/> -->
<!--
The next feature, google.contentmatch, is required for all
Gmail contextual gadgets.
<Param> - specify one or more comma-separated extractor IDs in
a param named "extractors". This line is overridden by the extractor ID
in the manifest, but is still expected to be present.
-->
<Require feature="google.contentmatch">
<Param name="extractors">google.com:HelloWorld</Param>
</Require>
</ModulePrefs>
<!--
Define the content type and display location. The settings
"html" and "card" are required for all Gmail contextual gadgets.
-->
<Content type="html" view="card"><![CDATA[<p>Hello World</p>
<script type="text/javascript">
<!-- Fetch the array of content matches. -->
matches = google.contentmatch.getContentMatches();
var matchList = document.createElement('UL');
var listItem;
var extractedText;
<!-- Iterate through the array and display output for each match. -->
for (var match in matches) {
for (var key in matches[match]) {
listItem = document.createElement('LI');
extractedText = document.createTextNode(key + ": " + matches[match][key]);
listItem.appendChild(extractedText);
matchList.appendChild(listItem);
}
}
document.body.appendChild(matchList);
gadgets.window.adjustHeight(100);
</script>]]></Content>
</Module>
I had a similar issue of it not activating and the solution for me was to make the "Extractor param name" set to "hello" and and the "Extractor param value" set to ".*" -- According to the docs the important part is the value field:
If you really do want your gadget to be triggered by all possible
values in the extractor's default output, explicitly set the regular
expression as value=".*". This makes it clear that you have cast a
wide net by design.
I'm playing with this Azure web role sample. It contains a class derived from RoleEntryPoint and a .aspx page that contains a button click handler.
I test it in Azure Emulator. I put the following code (taken from here)
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
in both role OnStart() and the button click handler. When role OnStart() is invoked it happens to run in WaIISHost.exe under MachineName\\MyLogin account and when button handler code is invoked it happens to run in w3wp.exe under MachineName\\NETWORK SERVICE account. That's surprising.
Why are these pieces of code from the same role project run inside different processes and under different accounts? Can I change that?
David is correct. In addition to that, you can turn off this behavior and run everything in the hostable web core (as it worked before SDK 1.4). You just need to comment out the "Sites" section in the services definition like in the example below:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="aExpense.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="aExpense" vmsize="Medium">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="HttpsIn" endpointName="HttpsIn" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="DataConnectionString" />
<Setting name="allowInsecureRemoteEndpoints" />
</ConfigurationSettings>
With Windows Azure v1.3 and beyond, a Web Role takes advantage of the full IIS, rather than Hosted Web Core. IIS runs in a separate appdomain.
See this blog post from the Windows Azure team for the gory details.
I use this code to create all day event on Exchange 2010sp1:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2007_SP1"/>
</soap:Header>
<soap:Body>
<CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" SendMeetingInvitations="SendToAllAndSaveCopy">
<SavedItemFolderId>
<t:DistinguishedFolderId Id="calendar"/>
</SavedItemFolderId>
<Items>
<t:CalendarItem xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Subject>test event</Subject>
<Body BodyType="Text">my test event</Body>
<ReminderIsSet>false</ReminderIsSet>
<Start>2011-01-06T07:00:00Z</Start>
<End>2011-01-06T08:00:00Z</End>
<IsAllDayEvent>true</IsAllDayEvent>
<Location>test location</Location>
<t:MeetingTimeZone>
<t:BaseOffset>-PT2H</t:BaseOffset>
<t:Standard>
<t:Offset>P0D</t:Offset>
<t:RelativeYearlyRecurrence>
<t:DaysOfWeek>Sunday</t:DaysOfWeek>
<t:DayOfWeekIndex>Second</t:DayOfWeekIndex>
<t:Month>September</t:Month>
</t:RelativeYearlyRecurrence>
<t:Time>01:59:59</t:Time>
</t:Standard>
<t:Daylight>
<t:Offset>-PT1H</t:Offset>
<t:RelativeYearlyRecurrence>
<t:DaysOfWeek>Friday</t:DaysOfWeek>
<t:DayOfWeekIndex>First</t:DayOfWeekIndex>
<t:Month>April</t:Month>
</t:RelativeYearlyRecurrence>
<t:Time>03:00:00</t:Time>
</t:Daylight>
</t:MeetingTimeZone>
</t:CalendarItem>
</Items>
</CreateItem>
</soap:Body>
</soap:Envelope>
The meeting that get created spans over 2 days,
I checked the timezone and locale on the client and server machines and they are correct,
Using the same code one 2010 and 2007 works correctly.
This issue was verified on another separate environment.
Any help or direction will be appreciated.
Thanks,
Eli
Check http://calendarservermigration.blogspot.com/2010/12/ews-outlook-live-exchange-release.html where they describe of a similar problem. I have the same problem using the Exchange Web Services Managed API 1.1 library on Exchange 2010 as well as Exchange 2010 SP1.
I currently use new ExchangeService(ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.Utc) when I connect to either Exchange Server 2007 or Exchange Server 2010 and it seems to work fine (if you don't require functionality that's available since Exchange Server 2010).
Im using Exchange 2010, using <RequestServerVersion Version="Exchange2010_SP1"> gives me an error indicating MeetingTimeZone is deprecated, use StartTimeZone and/or EndTimeZone instead.
See my explanation here Exchange 2010 Web Services - creation of an all day event appointment as to why its spanning 2 days.
The issue was fixed by MS (after we reported them this issue), they reported it now fixed on Exchange2010 sp2.