5
2013-04-10 Flickcurl Version 1.24 Released
7
Fixed uploading with OAuth - incorrect signature since it failed to use
10
Added flickcurl_photos_getInfo2() deprecating
11
flickcurl_photos_getInfo() adding the optional 'secret' parameter that
12
was added sometime to the API. See [2]Debian bug 637746.
14
Updated flickcurl(1) to allow photos.getInfo to take an optional SECRET
15
arg using the new call below, and to add the missing command
16
contacts.getPublicList which fixes [3]Issue 19. .
18
Added new APIs calls to make available the Flickr username and NSID
19
when OAuth authentication is done.
20
const char* flickcurl_get_oauth_username(flickcurl* fc);
21
const char* flickcurl_get_oauth_user_nsid(flickcurl* fc);
23
These new calls were from GitHub [4]pull request 18 from Jose Carlos
26
Added a pile of fields to flickcurl_group to match what the API returns
27
rather than what the documentation says:
28
* iconfarm icon farm number
29
* is_moderator and is_member booleans
30
* rules descriptive text
31
* pool_count and topic_count counts
32
* group restriction booleans: photos_ok, videos_ok, images_ok,
33
screens_ok, art_ok, safe_ok, moderate_ok, restricted_ok, has_geo.
35
Fixed grabbing text from a <tag> child text node correctly Fixes
39
Fixed parsing of latitude and longitude value responses.
41
Fixed a few flickcurl(1) utility manual page wordings. See [6]Debian
42
bug 635989 and [7]Debian bug 635989.
44
Updated example code to use OAuth authentication API.
46
Fixed a few memory mis-uses via clang and GCC 4.8.
48
2012-09-01 Flickcurl Version 1.23 Released
50
This release fully supports using Flickr via OAuth 1.0 and converting
51
from the legacy Flickr authentication to OAuth. It supports both
52
authentication flows but Flickr has deprecated the legacy
53
authentication, so it might stop working at any time.
55
Flickr [8]Legacy authentication flow with Flickcurl:
56
1. The initial configuration needed is the API Key and Shared Secret,
57
obtained from the [9]Flickr App Garden.
58
2. Get the Authentication URL from the Flickr App Garden.
59
3. Show the Authentication URL to the user who approves the app
60
resulting in a user visible Frob.
61
4. Authentication completes using flickcurl_auth_getFullToken() which
62
exchanges the Frob for the final Auth Token.
63
5. Optionally, the flickcurl(1) utility will store in the
64
configuration file: auth_token, api_key and secret. Otherwise the
65
application should do this.
67
Flickr [10]Flickr OAuth 1.0 flow with Flickcurl:
68
1. The initial configuration needed is the Client Key (API Key) and
69
Client Secret (Shared Secret), obtained from the [11]Flickr App
71
2. Authentication starts with a call to
72
flickcurl_oauth_create_request_token() to get the Request Token and
74
3. Get the Authentication URL using
75
flickcurl_oauth_get_authorize_uri().
76
4. Show the Authentication URL to the user who approves the app
77
resulting in a user visible Verifier.
78
5. Authentication completes using
79
flickcurl_oauth_create_access_token() to exchange the request
80
token, request token secret and verifier for the final Access Token
81
and Access Token Secret.
82
6. Optionally, the flickcurl(1) utility will store in the
83
configuration file: oauth_token, oauth_token_secret,
84
oauth_client_key and oauth_client_secret. Otherwise the application
87
Added an API call to upgrade from the Flickr legacy authentication to
88
OAuth 1.0. This revokes and deletes the legacy 'auth_token' and returns
89
an OAuth Access Token and Access Token Secret pair which need to be
91
int flickcurl_auth_oauth_getAccessToken(flickcurl* fc)
93
The upgrade can also be performed by using the oauth.upgrade command of
94
the flickcurl(1) utility.
96
Added new API calls to get and set OAuth parameters:
97
const char* flickcurl_get_oauth_token(flickcurl *fc);
98
void flickcurl_set_oauth_token(flickcurl *fc, const char* token);
100
const char* flickcurl_get_oauth_token_secret(flickcurl* fc);
101
void flickcurl_set_oauth_token_secret(flickcurl* fc, const char *secret);
103
const char* flickcurl_get_oauth_client_key(flickcurl *fc);
104
void flickcurl_set_oauth_client_key(flickcurl *fc, const char* client_key);
106
const char* flickcurl_get_oauth_client_secret(flickcurl *fc);
107
void flickcurl_set_oauth_client_secret(flickcurl *fc, const char* client_secre
110
const char* flickcurl_get_oauth_request_token(flickcurl* fc);
111
void flickcurl_set_oauth_request_token(flickcurl *fc, const char* token);
113
const char* flickcurl_get_oauth_request_token_secret(flickcurl* fc);
114
void flickcurl_set_oauth_request_token_secret(flickcurl *fc, const char* secre
117
Added new API calls for performing the OAuth flow
118
int flickcurl_oauth_create_request_token(flickcurl* fc, const char* callback);
120
char* flickcurl_oauth_get_authorize_uri(flickcurl* fc);
122
int flickcurl_oauth_create_access_token(flickcurl* fc, const char* verifier);
124
In flickcurl_photos_setDates() actually send date_taken parameter. This
125
fixes [12]GitHub issue 15
127
Updated configure to use xml2-config(1) and curl-config(1) as well as
128
pkg-config(1), for systems that do not ship with the pkg-config files,
131
Fixed memory leak in flickcurl_build_persons() on loop exit (always)
132
and on the error path.
134
Fixed memory leak in flickcurl_build_photos() of string_value for tags.
136
Updated flickcurl utility to handle the OAuth authentication flow with
137
new commands oauth-create and oauth-verify, while still supporting
138
legacy Flickr auth flow with the existing -a FROB form.
140
Multiple internal changes in the construction of parameters to make the
141
code more readable and handle the extra parameters needed by OAuth.
143
Multiple internal changes for error path and leaks found by the LLVM
144
[13]clang static code analyzer.
146
Removed all strncpy, strcat and strcpy with counted memcpy.
5
148
2011-12-28 Flickcurl Version 1.22 Released
7
150
Add support for the upload field 'hidden' to set if a photo is visible
1824
1967
__________________________________________________________________
1826
Copyright (C) 2007-2011 [106]Dave Beckett
1969
Copyright (C) 2007-2013 [118]Dave Beckett
1830
1973
1. http://www.dajobe.org/
1831
2. http://www.flickr.com/services/api/flickr.favorites.getContext.html
1832
3. http://www.flickr.com/services/api/flickr.photosets.removePhotos.html
1833
4. http://www.flickr.com/services/api/flickr.photosets.reorderPhotos.html
1834
5. http://www.flickr.com/services/api/flickr.photosets.setPrimaryPhoto.html
1835
6. http://github.com/dajobe/flickcurl/issues/#issue/4
1836
7. http://code.flickr.com/blog/2010/04/08/galleries-apis/
1837
8. http://www.flickr.com/services/api/flickr.people.getPhotos.html
1838
9. http://code.flickr.com/blog/2010/03/03/flickr-stats-api/
1839
10. http://www.flickr.com/services/api/flickr.stats.getCollectionDomains.html
1840
11. http://www.flickr.com/services/api/flickr.stats.getCollectionReferrers.html
1841
12. http://www.flickr.com/services/api/flickr.stats.getCollectionStats.html
1842
13. http://www.flickr.com/services/api/flickr.stats.getPhotoDomains.html
1843
14. http://www.flickr.com/services/api/flickr.stats.getPhotoReferrers.html
1844
15. http://www.flickr.com/services/api/flickr.stats.getPhotosetDomains.html
1845
16. http://www.flickr.com/services/api/flickr.stats.getPhotosetReferrers.html
1846
17. http://www.flickr.com/services/api/flickr.stats.getPhotosetStats.html
1847
18. http://www.flickr.com/services/api/flickr.stats.getPhotoStats.html
1848
19. http://www.flickr.com/services/api/flickr.stats.getPhotostreamDomains.html
1849
20. http://www.flickr.com/services/api/flickr.stats.getPhotostreamReferrers.html
1850
21. http://www.flickr.com/services/api/flickr.stats.getPhotostreamStats.html
1851
22. http://www.flickr.com/services/api/flickr.stats.getPopularPhotos.html
1852
23. http://www.flickr.com/services/api/flickr.stats.getTotalViews.html
1853
24. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1854
25. http://www.flickr.com/services/api/flickr.photos.people.add.html
1855
26. http://www.flickr.com/services/api/flickr.photos.people.delete.html
1856
27. http://www.flickr.com/services/api/flickr.photos.people.deleteCoords.html
1857
28. http://www.flickr.com/services/api/flickr.photos.people.editCoords.html
1858
29. http://www.flickr.com/services/api/flickr.photos.people.getList.html
1859
30. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1860
31. http://www.flickr.com/services/api/flickr.people.getPhotosOf.html
1861
32. http://www.flickr.com/services/api/flickr.galleries.addPhoto.html
1862
33. http://www.flickr.com/services/api/flickr.galleries.getList.html
1863
34. http://www.flickr.com/services/api/flickr.galleries.getListForPhoto.html
1864
35. http://www.flickr.com/groups/api/discuss/72157622404753248/#comment72157622896186411
1865
36. http://tech.groups.yahoo.com/group/yws-flickr/message/5053
1866
37. http://www.flickr.com/services/api/flickr.places.getTopPlacesList.html
1867
38. http://www.flickr.com/services/api/flickr.blogs.getServices.html
1868
39. http://www.flickr.com/services/api/flickr.photos.comments.getRecentForContacts.html
1869
40. http://www.flickr.com/services/api/flickr.machinetags.getRecentValues.html
1870
41. http://github.com/
1871
42. http://github.com/dajobe/flickcurl/tree/master
1872
43. http://svn.dajobe.org/view/
1873
44. http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/
1874
45. http://git.lespiau.name/cgit/shave/
1875
46. http://www.flickr.com/services/api/flickr.panda.getList.html
1876
47. http://www.flickr.com/services/api/flickr.panda.getPhotos.html
1877
48. http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
1878
49. http://www.flickr.com/explore/panda
1879
50. http://www.flickr.com/services/api/flickr.groups.members.getList.html
1880
51. http://tech.groups.yahoo.com/group/yws-flickr/message/4749
1881
52. http://www.flickr.com/services/api/flickr.commons.getInstitutions.html
1882
53. http://www.flickr.com/services/api/flickr.contacts.getListRecentlyUploaded.html
1883
54. http://www.flickr.com/services/api/flickr.photos.geo.batchCorrectLocation.html
1884
55. http://www.flickr.com/services/api/flickr.photos.geo.correctLocation.html
1885
56. http://www.flickr.com/services/api/flickr.photos.geo.photosForLocation.html
1886
57. http://www.flickr.com/services/api/flickr.photos.geo.setContext.html
1887
58. http://www.flickr.com/services/api/flickr.places.getPlaceTypes.html
1888
59. http://www.flickr.com/services/api/flickr.places.getShapeHistory.html
1889
60. http://www.flickr.com/services/api/flickr.places.placesForBoundingBox.html
1890
61. http://www.flickr.com/services/api/flickr.places.placesForContacts.html
1891
62. http://www.flickr.com/services/api/flickr.places.placesForTags.html
1892
63. http://www.flickr.com/services/api/flickr.places.tagsForPlace.html
1893
64. http://tech.groups.yahoo.com/group/yws-flickr/message/4669
1894
65. http://tech.groups.yahoo.com/group/yws-flickr/message/4668
1895
66. http://flickr.com/groups/api/discuss/72157613093793775/
1896
67. http://tech.groups.yahoo.com/group/yws-flickr/message/4545
1897
68. http://www.flickr.com/services/api/flickr.machinetags.getNamespaces.html
1898
69. http://www.flickr.com/services/api/flickr.machinetags.getPairs.html
1899
70. http://www.flickr.com/services/api/flickr.machinetags.getPredicates.html
1900
71. http://www.flickr.com/services/api/flickr.machinetags.getValues.html
1901
72. http://www.flickr.com/services/api/flickr.tags.getClusterPhotos.html
1902
73. http://tech.groups.yahoo.com/group/yws-flickr/message/4510
1903
74. http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/
1904
75. http://developer.yahoo.com/geo/
1905
76. http://www.flickr.com/services/api/flickr.places.getInfo.html
1906
77. http://www.flickr.com/services/api/flickr.places.getInfoByUrl.html
1907
78. http://www.flickr.com/services/api/flickr.places.getChildrenWithPhotosPublic.html
1908
79. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1909
80. http://en.wikipedia.org/wiki/Mister_Rogers%27_Neighborhood
1910
81. http://en.wikipedia.org/wiki/Neighbours
1911
82. http://geobloggers.com/2008/08/19/correcting-location-data-the-flickr-way/
1912
83. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1913
84. http://code.flickr.com/blog/2008/09/04/whos-on-first/
1914
85. http://code.flickr.com/blog/2008/08/19/standard-photos-response-apis-for-civilized-age/
1915
86. http://code.flickr.com/blog/2008/08/25/api-responses-as-feeds/
1916
87. http://www.flickr.com/services/api/flickr.tags.getClusters.html
1917
88. http://tech.groups.yahoo.com/group/yws-flickr/message/4218
1918
89. http://tech.groups.yahoo.com/group/yws-flickr/message/4146
1919
90. http://dublincore.org/
1920
91. http://dublincore.org/
1921
92. http://www.foaf-project.org/
1922
93. http://www.w3.org/2003/01/geo/
1923
94. http://www.w3.org/TR/rdf-schema/
1924
95. http://www.w3.org/TR/rdf-concepts/
1925
96. http://www.w3.org/TR/xmlschema-1/
1926
97. http://www.flickr.com/services/api/
1927
98. http://www.flickr.com/services/api/
1928
99. http://www.dopplr.com/
1929
100. http://www.aaronland.info/bin/filtr/
1930
101. http://www.geonames.org/
1931
102. http://upcoming.yahoo.com/
1932
103. http://developer.yahoo.com/geo/
1933
104. http://triplr.org/
1934
105. http://librdf.org/raptor
1935
106. http://www.dajobe.org/
1974
2. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637746
1975
3. https://github.com/dajobe/flickcurl/issues/19
1976
4. https://github.com/dajobe/flickcurl/pull/18
1977
5. https://github.com/dajobe/flickcurl/issues/16
1978
6. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635989
1979
7. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635989
1980
8. http://www.flickr.com/services/api/misc.userauth.html
1981
9. http://www.flickr.com/services/
1982
10. http://www.flickr.com/services/api/auth.oauth.html
1983
11. http://www.flickr.com/services/
1984
12. https://github.com/dajobe/flickcurl/issues/15
1985
13. http://clang-analyzer.llvm.org/
1986
14. http://www.flickr.com/services/api/flickr.favorites.getContext.html
1987
15. http://www.flickr.com/services/api/flickr.photosets.removePhotos.html
1988
16. http://www.flickr.com/services/api/flickr.photosets.reorderPhotos.html
1989
17. http://www.flickr.com/services/api/flickr.photosets.setPrimaryPhoto.html
1990
18. http://github.com/dajobe/flickcurl/issues/#issue/4
1991
19. http://code.flickr.com/blog/2010/04/08/galleries-apis/
1992
20. http://www.flickr.com/services/api/flickr.people.getPhotos.html
1993
21. http://code.flickr.com/blog/2010/03/03/flickr-stats-api/
1994
22. http://www.flickr.com/services/api/flickr.stats.getCollectionDomains.html
1995
23. http://www.flickr.com/services/api/flickr.stats.getCollectionReferrers.html
1996
24. http://www.flickr.com/services/api/flickr.stats.getCollectionStats.html
1997
25. http://www.flickr.com/services/api/flickr.stats.getPhotoDomains.html
1998
26. http://www.flickr.com/services/api/flickr.stats.getPhotoReferrers.html
1999
27. http://www.flickr.com/services/api/flickr.stats.getPhotosetDomains.html
2000
28. http://www.flickr.com/services/api/flickr.stats.getPhotosetReferrers.html
2001
29. http://www.flickr.com/services/api/flickr.stats.getPhotosetStats.html
2002
30. http://www.flickr.com/services/api/flickr.stats.getPhotoStats.html
2003
31. http://www.flickr.com/services/api/flickr.stats.getPhotostreamDomains.html
2004
32. http://www.flickr.com/services/api/flickr.stats.getPhotostreamReferrers.html
2005
33. http://www.flickr.com/services/api/flickr.stats.getPhotostreamStats.html
2006
34. http://www.flickr.com/services/api/flickr.stats.getPopularPhotos.html
2007
35. http://www.flickr.com/services/api/flickr.stats.getTotalViews.html
2008
36. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
2009
37. http://www.flickr.com/services/api/flickr.photos.people.add.html
2010
38. http://www.flickr.com/services/api/flickr.photos.people.delete.html
2011
39. http://www.flickr.com/services/api/flickr.photos.people.deleteCoords.html
2012
40. http://www.flickr.com/services/api/flickr.photos.people.editCoords.html
2013
41. http://www.flickr.com/services/api/flickr.photos.people.getList.html
2014
42. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
2015
43. http://www.flickr.com/services/api/flickr.people.getPhotosOf.html
2016
44. http://www.flickr.com/services/api/flickr.galleries.addPhoto.html
2017
45. http://www.flickr.com/services/api/flickr.galleries.getList.html
2018
46. http://www.flickr.com/services/api/flickr.galleries.getListForPhoto.html
2019
47. http://www.flickr.com/groups/api/discuss/72157622404753248/#comment72157622896186411
2020
48. http://tech.groups.yahoo.com/group/yws-flickr/message/5053
2021
49. http://www.flickr.com/services/api/flickr.places.getTopPlacesList.html
2022
50. http://www.flickr.com/services/api/flickr.blogs.getServices.html
2023
51. http://www.flickr.com/services/api/flickr.photos.comments.getRecentForContacts.html
2024
52. http://www.flickr.com/services/api/flickr.machinetags.getRecentValues.html
2025
53. http://github.com/
2026
54. http://github.com/dajobe/flickcurl/tree/master
2027
55. http://svn.dajobe.org/view/
2028
56. http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/
2029
57. http://git.lespiau.name/cgit/shave/
2030
58. http://www.flickr.com/services/api/flickr.panda.getList.html
2031
59. http://www.flickr.com/services/api/flickr.panda.getPhotos.html
2032
60. http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
2033
61. http://www.flickr.com/explore/panda
2034
62. http://www.flickr.com/services/api/flickr.groups.members.getList.html
2035
63. http://tech.groups.yahoo.com/group/yws-flickr/message/4749
2036
64. http://www.flickr.com/services/api/flickr.commons.getInstitutions.html
2037
65. http://www.flickr.com/services/api/flickr.contacts.getListRecentlyUploaded.html
2038
66. http://www.flickr.com/services/api/flickr.photos.geo.batchCorrectLocation.html
2039
67. http://www.flickr.com/services/api/flickr.photos.geo.correctLocation.html
2040
68. http://www.flickr.com/services/api/flickr.photos.geo.photosForLocation.html
2041
69. http://www.flickr.com/services/api/flickr.photos.geo.setContext.html
2042
70. http://www.flickr.com/services/api/flickr.places.getPlaceTypes.html
2043
71. http://www.flickr.com/services/api/flickr.places.getShapeHistory.html
2044
72. http://www.flickr.com/services/api/flickr.places.placesForBoundingBox.html
2045
73. http://www.flickr.com/services/api/flickr.places.placesForContacts.html
2046
74. http://www.flickr.com/services/api/flickr.places.placesForTags.html
2047
75. http://www.flickr.com/services/api/flickr.places.tagsForPlace.html
2048
76. http://tech.groups.yahoo.com/group/yws-flickr/message/4669
2049
77. http://tech.groups.yahoo.com/group/yws-flickr/message/4668
2050
78. http://flickr.com/groups/api/discuss/72157613093793775/
2051
79. http://tech.groups.yahoo.com/group/yws-flickr/message/4545
2052
80. http://www.flickr.com/services/api/flickr.machinetags.getNamespaces.html
2053
81. http://www.flickr.com/services/api/flickr.machinetags.getPairs.html
2054
82. http://www.flickr.com/services/api/flickr.machinetags.getPredicates.html
2055
83. http://www.flickr.com/services/api/flickr.machinetags.getValues.html
2056
84. http://www.flickr.com/services/api/flickr.tags.getClusterPhotos.html
2057
85. http://tech.groups.yahoo.com/group/yws-flickr/message/4510
2058
86. http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/
2059
87. http://developer.yahoo.com/geo/
2060
88. http://www.flickr.com/services/api/flickr.places.getInfo.html
2061
89. http://www.flickr.com/services/api/flickr.places.getInfoByUrl.html
2062
90. http://www.flickr.com/services/api/flickr.places.getChildrenWithPhotosPublic.html
2063
91. http://www.flickr.com/services/api/flickr.places.placesForUser.html
2064
92. http://en.wikipedia.org/wiki/Mister_Rogers%27_Neighborhood
2065
93. http://en.wikipedia.org/wiki/Neighbours
2066
94. http://geobloggers.com/2008/08/19/correcting-location-data-the-flickr-way/
2067
95. http://www.flickr.com/services/api/flickr.places.placesForUser.html
2068
96. http://code.flickr.com/blog/2008/09/04/whos-on-first/
2069
97. http://code.flickr.com/blog/2008/08/19/standard-photos-response-apis-for-civilized-age/
2070
98. http://code.flickr.com/blog/2008/08/25/api-responses-as-feeds/
2071
99. http://www.flickr.com/services/api/flickr.tags.getClusters.html
2072
100. http://tech.groups.yahoo.com/group/yws-flickr/message/4218
2073
101. http://tech.groups.yahoo.com/group/yws-flickr/message/4146
2074
102. http://dublincore.org/
2075
103. http://dublincore.org/
2076
104. http://www.foaf-project.org/
2077
105. http://www.w3.org/2003/01/geo/
2078
106. http://www.w3.org/TR/rdf-schema/
2079
107. http://www.w3.org/TR/rdf-concepts/
2080
108. http://www.w3.org/TR/xmlschema-1/
2081
109. http://www.flickr.com/services/api/
2082
110. http://www.flickr.com/services/api/
2083
111. http://www.dopplr.com/
2084
112. http://www.aaronland.info/bin/filtr/
2085
113. http://www.geonames.org/
2086
114. http://upcoming.yahoo.com/
2087
115. http://developer.yahoo.com/geo/
2088
116. http://triplr.org/
2089
117. http://librdf.org/raptor
2090
118. http://www.dajobe.org/