Broken Ads Api after 3rd October 2013 - facebook-graph-api

Looks like after October 2013 breaking changes ADS api is not working fine . Earlier call to url
https://graph.facebook.com/act_{act id}/adcampaigns?access_token={access token}
will return
Values like
{"id":"{value}","frequency_cap":0,"account_id":{value},"name":"{value}"}
But now the output returns like
{"id":"{value}"}
Can some one please confirm ?

This is one of the changes made in the October 2013 breaking changes and is documented on the 'Completed Changes' part of the roadmap
Adcampaign endpoint
Removing campaign_id and include_budget_remaining flag. You must now
specify query params when retrieving information about adgroups. The
only field returned by default will be id. See docs for more detail.

Related

Facebook graph api started to return only the first 10 posts in a group feed

a few days ago I started to experience troubles accessing facebook group data feed using graph api (i am using v2.8 but the results are the same also with older versions).
The graph api call started to return only the first 10 posts in the feed (i.e. the most recent ones) even though no changes were made from my side.
The same behaviour is reproducible also in graph api explorer using /groupId/feed path (I am not passing the 'limit' parameter in the request url). Previously it has been returning all the available posts with paging, etc.
Please note that if I use a pageId instead of groupId all the posts in the specified page are returned correctly - seems only groups are affected.
Can somebody shed some light on this?
Regards
Due to this thread in Facebook Developer Community it looks like a bug.
Here are bug reports:
https://developers.facebook.com/bugs/1316646108368355?hc_location=ufi
https://developers.facebook.com/bugs/1796973007211974?hc_location=ufi
https://developers.facebook.com/bugs/1645827285730392?hc_location=ufi

How to format a datetime literal in the StrongLoop API Explorer?

The documentation for the API Explorer is practically non-existent. One of my models requires a date property. The example given in the API Explorer looks like this: '2016-03-27'. How can I add a time to that?
Keep in mind I just need a datetime literal to enter into the API Explorer, not any JavaScript code.
I couldn't locate any documentation either. Based on a guess, I tried out some of the dateString literals that Date.parse() would parse successfully and found it to be working as expected with loopback. I used the example string formats from here.
For example, I used the following dateString for the created field in the API Explorer for a POST \Users request:
javascript
{
"email":"username#domain.com",
"password":"pass123",
"created":"Mar 24, 2016 04:00:00 GMT"
}
The response contained this:
javascript
"created" : "2016-03-24T04:00:00.000Z"
I also noticed that, similar to what is described in the link pasted, the Date defaults to local timezone if not explicitly stated.

Is mutual_friend_count deprecated in FQL starting OpenGraph v2.0?

The mutualfriends connection for users is deprecated in OpenGraph v2.0, however it should still work with OpenGraph v1.0 for another year.
I would expect the FQL mutual_friends_count field to work for anthor year as well. However, it seems like it is no longer supported (returns null).
Anybody knows if it is just a bug, or if it is by design?
This bug has been fixed https://developers.facebook.com/bugs/242368225968716/ (May 8, 2014 at 4:34pm)
This query works for an v1.0 enabled app
SELECT name,mutual_friend_count FROM user where uid IN (SELECT uid1 FROM friend where uid2=me()) order by mutual_friend_count

Sitecore: Seemingly Random errors appear

we are experiencing some very odd errors in our installation.
Some times out of nowhere Sitecore throws an error:
Assert: Value Cannot be null. Parameter: Item.
The closest i have come to identifying the problem is narrowing it down to either an index or the web database.
Anyway, if I log into sitecore the Item is just missing, i can fix it in 3 ways:
Rebuild the index.
Recycle app pool
iisreset
Does any of you have an idea why this might be happening? We are running Sitecore.NET 6.5.0 (rev. 120706). Any help will be deeply appreciated.
You are describing a system stability issue, so I recommend opening a ticket with Sitecore support (http://support.sitecore.net). This sort of issue is difficult to troubleshoot over Stack Overflow, since we do not have access to your logs and configuration.
When opening the ticket, I recommend using the Support Package Generator which bundles up all the information (Web.config, App_Config files, IIS settings, Sitecore log files) that Sitecore Support needs to troubleshoot the issue. It's a pretty nifty tool.
That said, from what you describe, it sounds like the issue is related to caching. The fact that restarting IIS resolves the issue indicates that the item is in the Web database, but the runtime doesn't see it. You can prove out whether this is the issue by clearing cache using the /sitecore/admin/cache.aspx screen. If your cache is not getting updated properly, you should review your configuration against the guidelines in the SDN Scaling Guide.
Based on knowing you're using the Advanced Database Crawler, your issue may be how you're converting a SkinnyItem to an Item. I've had this issue before. If you look at the SkinnyItem.cs class, there's a GetItem() method to convert it into an Item. You can see it uses the database to get the item by its ID, language, and version number. Its possible that when you publish from master to web, you are publishing a new version # of an existing item and thus the new version exists in the web DB, but the index is not updated and references the old version. So, this GetItem() call would use the previous version # and the item would be null. One way to fix this is instead of calling that GetItem() method, just use your own code to get the latest version of that item from Sitecore, e.g.
Item item = Sitecore.Context.Database.GetItem(someSkinnyItem.ItemID);
Instead of
Item item = someSkinnyItem.GetItem();
Here's an example flow:
Foo item created in master DB as version 1.
Publish Foo to web
Index will pick up version 1 in web DB and put in index.
Any querying code against index will convert the SkinnyItem to an Item via that GetItem() method and will pass 1 as the version #.
Page will load, no error in log
Back in master, create version 2 of Foo and publish.
Index may not get updated right away or even if configured wrong.
Code that looks against index will call GetItem() and still call with version 1 since that's in the index
But when you published, web no longer has version 1, it now has version 2, and thus that specific version of that item Foo is null
Error shows in log
On a similar note, here's a blog post by Alex Shyba (creator of the ADC) on how to sync HTML cache clearing with the index updates. That may help.

I need a sunrise/sunset webservice api

Anyone know of a good webservice or api that I can use to get the sunrise/sunset times in bulk? Every thing I have found so far only gives a day at a time or has a limitation on what dates can be used.
http://sunrise-sunset.org/api
It's free to use. Just needs a credit link back to the website.
It's not a web service, but this SO question has links to algorithms, so you can create a table or your own web service with all the dates you need.
I recently found this JavaScript library that performs calculation based on date and lat/lon coordinates. It seems to be very precise.
Link: https://github.com/mourner/suncalc
It is also available as NodeJs package through npm.
NASA has the calculation in nicely laid out JS. View the source of this page:
http://www.esrl.noaa.gov/gmd/grad/solcalc/
NOTE: I'm not a lawyer but I believe the US Government cannot copyright anything, hold patents, etc. so one should be able to copy as use as one needs.
This is a nice and free sunrise and sunset times API: http://sunrise-sunset.org/api
PHP has built in functions to calculate sunrise/sunset:
http://php.net/manual/en/function.date-sunrise.php
http://php.net/manual/en/function.date-sunset.php
Weather underground has this:
wunderground astronomy feature
Keys are free and they have a pretty generous policy for volume. Been using their weather actuals and forecast json forecast for about year, couldn't be happier.
EarthTools comes up first on google here at webservices sunrise sunset
The NASA one is cool, but the US Naval Observatory has one (below) that could actually pass for an API. If you want to make it useful beyond its intended purpose:
inspect the http headers to find out what parameters are being sent
parse the hell out of the response
It was a fun exercise. You should be able to send a location (long/lat or City/State) along with a year to obtain a list of sunrise and sunset times for an entire year (and other data as well).
http://aa.usno.navy.mil/data/docs/RS_OneYear.php
Go to this website > https://www.esrl.noaa.gov/gmd/grad/solcalc/
1. Set your location
Select your location. You can zoom in to your location and move the pin manually.
2. Verify your Location and Date
Scroll down to the 'Location' under the map and verify your location.
The date is automatically taken, if not set it manually.
3. Get the details
Click the button 'Create Sunrise/Sunset Tables for the Year'.
4. Output in a Table
New window opens and all the details are displayed as table.
Thanks to #noctonura for the link.
Let's go to http://www.earthtools.org/webservices.htm
It's free web service that provides Timezone and Sun times from Latitude/Longitude location.
There is a way to calculate the sunrise/sunset without the need of an API. Its mostly based on location. Sorry I dont have much more info.
Home page
Query url
Url syntax:
http://sunpath.azurewebsites.net/api/values/LAT/LON/ALT/TIMEZONE
You must replace LAT, LON, ALT and TIMEZONE with your data
.
JSON result:
{"zenith":55.365660255995422,"azimuth180":25.434155784212443,"azimuth":205.43415578421244,"incidence":55.365660255995422,"suntransit":12.423540739046871,"sunrise":6.9577562375305817,"sunset":17.899687249200021,"time":"2016-02-23T13:49:31.3816733Z"}
Or you can access online version of SPA.c algorithm:
Online query for SPA algorithm
Output is not in JSON format, but you can specify multiple times and get multiple results:
Date,Time,Top. azimuth angle (westward from S),Topocentric sun declination,Topocentric sun right ascension,Top. elevation angle (uncorrected)
2/23/2016,0:00:00,168.224314,-10.130760,335.659091,-57.643946
2/23/2016,1:00:00,-164.161551,-10.115560,335.699290,-57.227919
2/23/2016,2:00:00,-140.171655,-10.100376,335.739465,-51.963801
2/23/2016,3:00:00,-122.026618,-10.085209,335.779585,-43.529014
2/23/2016,4:00:00,-108.202194,-10.070054,335.819621,-33.425695
2/23/2016,5:00:00,-96.857772,-10.054907,335.859549,-22.544581
2/23/2016,6:00:00,-86.694509,-10.039764,335.899355,-11.406096
2/23/2016,7:00:00,-76.801678,-10.024618,335.939030,-0.376624
2/23/2016,8:00:00,-66.440121,-10.009464,335.978575,10.203398
2/23/2016,9:00:00,-54.907983,-9.994297,336.017999,19.930206