Firebase Cloud Messaging - Check existing or available Topics - ios

I've read on Google Firebase Docs:
Client apps can subscribe to any existing topic, or they can create a new topic.
So how can I can check how many existing topics are available for me? Is it only through the console? Or is there an API?

As already mentioned by #FrankvanPuffelen in the comments section, there is not available API to get a list of Topics you have.
What you could do is keep record of the topics you have created on your server side. So it pretty much depends on your own implementation.
Also, if you are thinking of checking the number of subscribers of a specific topic so you can see which ones are active or not, it's also not possible. See this answer by #ArthurThompson:
No. There is no current way to query the number of subscribers to a topic, you would have to maintain the relationship between token and topics on you app server.

Related

Microsoft Graph API Road Map

I can't seem to find anything more than the changelog, does anyone know if there's a roadmap for planned functionality?
Notably, we're looking to have our employees enroll in MFA through a custom app calling the Graph API and add their mobile number, other email, and authenticator. I found a confirmation that this would be available from here but there hasn't been any update for nearly two years.
Thanks in advance!
There is no roadmap for Microsoft Graph currently. We announce new features into preview throughout the year with two major moments at Build and Ignite conferences. You can keep up with those announcements at https://developer.microsoft.com/en-us/graph/blogs/.
We do have a Microsoft Graph UserVoice https://microsoftgraph.uservoice.com/ where you can request and see others requests. Our PMs will actually change the status of features that are in development. This will give you a subset of the things we're working on that relate to public requests.
As you mention , our Change log will be the way to track new things on the API https://learn.microsoft.com/en-us/graph/changelog.
We also have a monthly Community Call online that we announce things that is the first tuesday of every month. https://developer.microsoft.com/en-us/graph/events . Existing events are blogged about and also available here https://developer.microsoft.com/en-us/graph/gallery/?filterBy=Podcasts,Videos

Reddit Get Subscriber Count Growth

Having a history of the subscriber count of specific subreddit is data that I need for data analysis.
I found a page which is doing exactly that e.g.: http://redditmetrics.com/r/worldnews
Is there an official endpoint in the reddit api for getting a history of subscriber counts and how the popularity of a subreddit has evolved until now or are there any other reliable ways to do this?
Tracking the data on my own is not an option because I'm interested in subscriber counts in the past and not in the future past.
Unfortunately there's no endpoint for that within the reddit api. One option could be to scrape sites like that for past data (with permission hopefully). And maybe the only other option would be to ask those sites for raw data (who knows, it might work). Good luck!

Inviting event attendees programatically on iOS 10

I've been using Stackoverflow for about 5 years now, and haven't felt the need to ask a single question yet, I've always found the answer i needed through previous threads. That just changed and I have a question that I really can't figure out. And it sounds so easy to do.
So the question is; how do you invite attendees, or reply/decline to calendar events on iOS under iOS 10? And please, no we don't want to bring up an EKEventViewController. We'd like to do this in our own UI. Under iOS 9 this was possible through just forcing EKAttendees objects in to the EKParticipants array with setValueForKey:. But under iOS 10 this produces an error saying 'Attendees can't be modified'.
I have used a Technical Support credit with Apple and got the reply that this was not possible. It is not possible using their APIs.
The closest to an answer i've got is to use IMIP (https://www.rfc-editor.org/rfc/rfc6047#section-2.2.1). If that's the way to go, could someone help me along on how to actually set that up? I'm not well versed in back-end development, I'm all front-end so I wouldn't really know where to start.
There also seems to be some CalDav servers on GitHub (https://github.com/mozilla-b2g/caldav) but I'm not sure how good they are, or exactly what you need to set one up.
So basically, is there anyone who could give a childs explanation to just how the heck we can send nice invites to calendar events. And if there are different solutions for Google, Apple accounts (obviously under the hood, but implementation-wise) that would be very helpful to know to.
Is this something that requires a ton of implementation on our own servers or is there some reliable service to use? That would be ideal. Maybe you should build one and you got at least one customer here :-)
Appreciate any help!
You cannot modify attendees using EventKit, but Apple already told you that:
I have used a Technical Support credit with Apple and got the reply that this was not possible. It is not possible using their APIs.
The hack with accessing the internal objects using KVC was, well, a hack and not documented API. No surprise they killed that.
So how do calendar invites work. That in itself is a very complex topic (consider delegation, resource booking like rooms, etc etc). There is a whole consortium which works on that (CalConnect), they also have a broad overview: Introduction to Internet Calendaring and Scheduling.
If you are serious into scheduling/calendaring software, it may make a lot of sense to join CalConnect for their interop events etc.
But you wanted a 'childs explanation'. I can't give that, but a short overview.
iTIP
iTIP is a standard which defines how scheduling messages flow, e.g. that you send a message to your attendee, your attendee responds back with accept/decline, what happens if a meeting is cancelled and all that.
It does NOT however specify how those messages are transferred. It is just a model on how the message flow works between the organiser and the participants.
Most 'big' calendaring systems (Exchange, Google, CalDAV servers like iCloud) use iTIP or at least something very similar.
iMIP
iMIP is a standard which defines on how to exchange iTIP messages using email. Say if you invite someone using iMIP, you'll send him a special email message with the iCalendar payload containing the invite. If your attendee accepts, his client will send back another iCalendar payload via email containing that.
iMIP is supported by a lot of systems and was, for a long time, pretty much the only way to exchange invitations between different systems (say Outlook and Lotus Notes).
However: the iOS email client does NOT support iMIP (unlike macOS or Outlook). So if someone sends you an iMIP invite to your iOS device, you won't be able to respond to that. (reality is more complex, but basically it is like that)
CalDAV
CalDAV is a set of standards around calendars stored on a server. Many many servers support CalDAV. E.g. iCloud uses CalDAV. Yahoo, Google, etc all support CalDAV. The important exception is Exchange, which doesn't support it.
In its basic setup CalDAV just acts as a store. You can use HTTP to store (PUT) and retrieve (GET, etc) events and todos using the iCalendar format.
In addition many CalDAV servers (e.g. iCloud) do 'server side scheduling'. That is, if you store an event to the server which is a meeting (has attendee properties), the server will fan out the invitations. Either internally if the attendees live on the same server, or again using iMIP.
Exchange
Exchange supports iMIP but not CalDAV. You usually access it using one of its own web service APIs, e.g. ActiveSync or Exchange Web Services. I'm no expert on them, but I'm sure that they allow you to create invites. Exchange&Outlook have an iTIP like invite flow.
etc
Is this something that requires a ton of implementation on our own servers or is there some reliable service to use?
This really depends on your requirements and needs. Do you need to process replies or just send out generic events?
If you want to host a calendar store, it probably makes sense to use an existing CalDAV server.
Calendar invitations are a very complex topic and you need to be very specific on your actual requirements to find a solution. In general interoperable invitations in 2017 are still, lets say 'difficult'.
P.S.: Since you've been using StackOverflow for about 5 years now, you should know that this question is too broad for this thing.

Accessing quizzes and turnitin.com dropboxes with valence

I am trying to collect some information on the usage of quizzes and turnitin.com enabled dropboxes for specific courses within the d2l database. All I really need is a way to tell via valence whether or not a course offering has a turnitin.com enabled dropbox and/or a quiz associated with it, though other useful information would be nice as well. Is there a way to do this with valence? I should note that I am aware of how to access a list of standard dropboxes, but I cannot seem to find how to tell if that particular dropbox is turnitin.com enabled. I have no starting point for quizzes. I appreciate your help, and please let me know if I can clarify anything. Thank you.
There is no current way to identify, through Valence, a TurnItIn enabled Dropbox. Our TurnItIn integration is an extension available to customers who have the appropriate TurnItIn licensing. Because we cannot assume it is in place, we cannot expose this data through Valence. I am not sure if this information would be available through TurnItIn API's.
In regards to Quizzes, today we don't have Quiz data exposed through Valence. One option for you, which isn't perfect, would be to parse through Content Topics looking for Quicklinks which contain a reference type of quiz. This would provide you with a list of how many quizzes are linked into the course's content experience.

How to make iOS client synchronize craigslist-like data

I'm curious what would be the best approach for synchronizing data found on a website like craigslist where an API is not available.
Let's say you have already downloaded a set of posts. When you want to update the posts, what is the best way to compare what you already have with what is there, and then determine which ones are new to download and which ones should be deleted because they no longer exist on the server?
Please note my question isn't specific to craigslist, as this is just an example. I'm interested in general principles/techniques with specific regards to iOS.

Resources