FBSDKSharePhoto.h 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  2. //
  3. // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
  4. // copy, modify, and distribute this software in source code or binary form for use
  5. // in connection with the web services and APIs provided by Facebook.
  6. //
  7. // As with any software that integrates with the Facebook platform, your use of
  8. // this software is subject to the Facebook Developer Principles and Policies
  9. // [http://developers.facebook.com/policy/]. This copyright notice shall be
  10. // included in all copies or substantial portions of the software.
  11. //
  12. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  13. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  14. // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  15. // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  16. // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  17. // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  18. #import <UIKit/UIKit.h>
  19. #import <FBSDKCoreKit/FBSDKCopying.h>
  20. #import <FBSDKShareKit/FBSDKSharingValidation.h>
  21. @class PHAsset;
  22. /**
  23. A photo for sharing.
  24. */
  25. @interface FBSDKSharePhoto : NSObject <FBSDKCopying, FBSDKSharingValidation, NSSecureCoding>
  26. /**
  27. Convenience method to build a new photo object with an image.
  28. @param image If the photo is resident in memory, this method supplies the data
  29. @param userGenerated Specifies whether the photo represented by the receiver was generated by the user or by the
  30. application
  31. */
  32. + (instancetype)photoWithImage:(UIImage *)image userGenerated:(BOOL)userGenerated;
  33. /**
  34. Convenience method to build a new photo object with an imageURL.
  35. @param imageURL The URL to the photo
  36. @param userGenerated Specifies whether the photo represented by the receiver was generated by the user or by the
  37. application
  38. This method should only be used when adding photo content to open graph stories.
  39. For example, if you're trying to share a photo from the web by itself, download the image and use
  40. `photoWithImage:userGenerated:` instead.
  41. */
  42. + (instancetype)photoWithImageURL:(NSURL *)imageURL userGenerated:(BOOL)userGenerated;
  43. /**
  44. Convenience method to build a new photo object with a PHAsset.
  45. - Parameter photoAsset: The PHAsset that represents the photo in the Photos library.
  46. - Parameter userGenerated: Specifies whether the photo represented by the receiver was generated by the user or by the
  47. application
  48. */
  49. + (instancetype)photoWithPhotoAsset:(PHAsset *)photoAsset userGenerated:(BOOL)userGenerated;
  50. /**
  51. If the photo is resident in memory, this method supplies the data.
  52. @return UIImage representation of the photo
  53. */
  54. @property (nonatomic, strong) UIImage *image;
  55. /**
  56. The URL to the photo.
  57. @return URL that points to a network location or the location of the photo on disk
  58. */
  59. @property (nonatomic, copy) NSURL *imageURL;
  60. /**
  61. The representation of the photo in the Photos library.
  62. - Returns: PHAsset that represents the photo in the Photos library.
  63. */
  64. @property (nonatomic, copy) PHAsset *photoAsset;
  65. /**
  66. Specifies whether the photo represented by the receiver was generated by the user or by the application.
  67. @return YES if the photo is user-generated, otherwise NO
  68. */
  69. @property (nonatomic, assign, getter=isUserGenerated) BOOL userGenerated;
  70. /**
  71. Compares the receiver to another photo.
  72. @param photo The other photo
  73. @return YES if the receiver's values are equal to the other photo's values; otherwise NO
  74. */
  75. - (BOOL)isEqualToSharePhoto:(FBSDKSharePhoto *)photo;
  76. /**
  77. The user generated caption for the photo. Note that the 'caption' must come from
  78. * the user, as pre-filled content is forbidden by the Platform Policies (2.3).
  79. @return the Photo's caption if exists else returns null.
  80. */
  81. @property (nonatomic, copy) NSString *caption;
  82. @end