One click url for importing webcal to google/outlook calendar - icalendar

I have a php app that serve as a webcal server, I want user can choose either use their calendar app, or just import the webcal://example.ics directly to google or outlook or office 365 calendar with one click url, without user going through settings to import. Tried to find documents on these but couldn't.

YZY, There isn't a way that you can control the users calendar application to just import. It is up to the receiving end - the users application, to say how an ics file or url is treated on receipt. For example, in my desktop browser i have the default application for a .ics url/file set to be notepad++, not my calendar app. There is nothing you can do to override that.
How other applications such as email applications on smartphone or desktop treat it will depend on their settings as controlled by the user. EG: In outlook users may have unticked the 'automatically process meeting requests'
The only control the provider of the ics url/file has is to ensure that the file/url is specified correctly as per the latest specification (Note RFC5546 updates RFC5545, one needs to read both). Briefly:
https protocol is standard (webcal is unofficial apple. See https://icalendar.org/iCalendar-RFC-5545/1-introduction.html, https://en.wikipedia.org/wiki/ICalendar.)
The suffix is '.ics' as per examples given in RFC5546 and RFC5545
The mime content type is text/calendar https://www.iana.org/assignments/media-types/text/calendar and https://datatracker.ietf.org/doc/html/rfc5545#section-8.1
The appropriate METHOD must be used: PUBLISH is suitable for a subscribable URL (where it appears as a separate calendar in the URL) OR REQUEST (for meeting requests in emails etc) See https://datatracker.ietf.org/doc/html/rfc5545#section-3.7.2 and https://datatracker.ietf.org/doc/html/rfc5546#section-7.2
I like to distinguish between 'import' and 'subscribe':
Import in my opinion is where one imports an event (or multiple events) from a .ics file INTO an existing chosen calendar - eg (but not only): when a METHOD:REQUEST is used.
Subscribe is for icalendar feeds that get updated and so it is practical to subscribe or add the calendar by url to one's calendar application. This kind of url needs to be publicly accessible (although it can be obscured by unusual url)
One could download a subscribeable .ics and 'import' it but then one would only ever have that frozen event/s as at that point in time, it would not ever update.
In summary the best you can do is provide the url correctly and offer some links to info on how to subscribe in case the users are unfamiliar with subscribing

Related

How to send DokuWiki notification mails at certain time?

In our DokuWiki Installation (Release 2018-04-22b "Greebo"), users can subscribe to daily notification mails, which is a core feature of DokuWiki.
For those daily emails, we would like to make sure that they arrive at a certain time.
In the documentation, I did not find anything about a script that could be started (i.e. from a cronjob) to send out mails.
I set up a cronjob calling a freely accesible page in the wiki using curl (no login required for this page). This did not cause emails to be send.
Any hint on how to schedule daily emails to be send at a certain time would be helpful!
Update: I am aware of .../feed.php, which would theoretically allow to get information on wiki events using the RSS feed. This data could be used to send notification mails. However, the RSS feed would need to be generated for every user to respect access right. For this to work, some sort of user credentials - or a copy of the user's access rights - would need to be copied to a place outside of dokuwiki and kept in sync.

Sendgrid: how to use different tracking settings for different sets of messages

My application needs to send some messages with tracking activated and other messages without tracking.
When using Sendgrid, many settings, among them tracking settings, can be set using the admin web interface, and these settings will be used for all subsequent messages sent.
But is it possible to have different settings for different sets (or categories ?) of messages, and have the application define which settings to use when sending a given message through API ?
Or maybe define the tracking settings as part of the send API parameters ?
Yes. When sending via the v3 API, there's a tracking_settings field, where you can dynamically enable/disable settings for just that message.
There's a similar option when using the SMTPAPI JSON header.
I have similar problem.
After some investigation found two satisfactory solutions.
The fist one - integrate with google analytic.
The second - we moved all dynamic templates into application (also due to sg limitation for dynamic content) and added specific utm tags (UTM_SOURCE, UTM_CONTENT, UTM_MEDIUM, UTM_CAMPAIGN, UTM_TERM;) to each letter. And after user click on emails content FE process this tags.

XGCLogger: Retrieve logs from device?

How can you configure XCGLogger to log so that you can access log files from individual devices being used for testing?
I use CocoaLumberjack (another logging framework) in my apps but the following applies to any logging framework that supports logging to a file (including XGCLogger).
Setup your logging framework to log to a file (in addition to any other destination you might need).
Then add an option to your app somewhere appropriate that lets the user submit diagnostic information to you. When the user chooses this option your app can use MFMailComposeViewController to send you an email. Pre-populate the "to" field with your email address. Add the log file(s) as attachments to the email. Set the subject as desired (something like "MyCooApp Diagnostic Info"). You can also pre-populate the email message with additional details. I include the user's locale and timezone, the device name and model, and the version of iOS.
The user can add any additional info to the email message and tap Send. You get a nice email with the logs and other details.
If you don't want to take the email route, setup your web server with a special page that accepts file posts. Then have your app post the log files to your web server when the user chooses the "submit diagnostic info" option in your app.

Office365 weblink #odata response url for drafts not working

I am using the Office365 Rest API's to integrate with our application.
Our application generates emails via templates, and then we need to open it as a draft in outlook so the user can make any adjustments before sending it.
The creation of emails is working just fine, and we get the #odata response.
In this response we are taking the weblink section and using this to open the draft email.
If we just use the section as is, the draft email is displayed in a new window, but there is no option there to send it, just to continue editing or discard. So the user has to select continue editing to be able to send it. This would be more useful of you could Is there an option to go straight to the editor? There is a viewmode parameter, but I couldn't find any information on it and trying anything other than viewmodel=ReadMessageItem just gave me a blank screen.
What we really want to be able to do is open the draft in the full outlook editor. From the documentation, this appears to be possible by adding ispopout=0 to the weblink (as mentioned in the resource reference for message). When we do this, the link does open the main outlook window, but it doesn't open the draft in the message pane, just displays the inbox. Is there something I'm missing here?
WebLink property provides you a URL for Outlook Web App window to read a mail the user has received, or a draft as if it was saved by the user. So, the user does have to click on "Edit" to make any changes or send the message. For your scenario, taking the user directly to the draft in "Edit" mode makes sense to avoid the extra click. We will add this feature to our backlog.
"ispopout=0" isn't yet supported and I don't have a timeline to share right now. This is intended for the user to land in Outlook Web App with the message displayed in Preview pane. More importantly, we require the URL returned in WebLink to be used as is, as it can change. So, if an app makes changes to the URL before using it, it could break in the future if the URL structure changes.

Automate distribution of redemption codes for Custom B2B app

I have built a Custom B2B app for one of our clients. My question is how to automate the distribution of the redemption codes.
I have already looked at some of the MDM providers. Their solutions are too expensive and all we really need is a way to distribute the app from a webserver, not manage a bunch of mobile devices.
As you probably already know, when a client buys a Custom B2B app through the Apple VPP program, they get a spreadsheet with valid redemption codes for the number of licenses they have built. This spreadsheet has 2 columns: 1) redemption code 2) URL to redeem the code
I want to provide my client with a URL where they can send their users to download the app. They just don't have the expertise/infrastructure to distribute the app themselves. And emailing clients is not going to work.
I'm not a web guy, but it seems to me that we could write a webpage that would look at the spreadsheet for the next available activation code and then redirect the user to the associated URL. I'm not concerned with the number of licenses they distribute since I have another way of auditing the real number of users (Flurry). So I want this to be as painless as possible.
In fact, I have multiple clients and want to provide them each with their own URL for their clients. It seems like this shouldn't be too difficult to code.
The problem is, I'm not the guy to write that code. Any ideas on how best to do this?
Assuming that you don't want to show the user a website you should be able to do this with an online service like parse.com and the features it offers.
From a user POV you would supply them with a link which directed them to parse.com with a path and parameters indicating the action to be taken (get app) and what account is associated. This would redirect the users browser to the appropriate destination.
The main issue (and this applies to any solution) is knowing if the user actually followed through and used the code. i.e. should it be removed from the DB so it isn't offered to another user in future. Then you would update the DB each time you get a new spreadsheet.
Anyway, this could be achieved with a little javascript in parse.com, specifically, by using cloud code which can interrogate and modify the DB and then redirect the user.
Obviously if you need user authentication of some kind or other restrictions then you would need to start adding some web interface on top of this in order to collect the details.