lpw
2022-02-15 2e29a3a585524a054640bb6e7bdf26fe77ba1f17
commit | author | age
2e29a3 1 /*
L 2  * Copyright (c) Meta Platforms, Inc. and affiliates.
3  * All rights reserved.
4  *
5  * This source code is licensed under the license found in the
6  * LICENSE file in the root directory of this source tree.
7  */
8
9 #import <Foundation/Foundation.h>
10
11 #import <FBSDKCoreKit/FBSDKCoreKit.h>
12 #import <FBSDKShareKit/FBSDKSharingValidation.h>
13
14 NS_ASSUME_NONNULL_BEGIN
15
16 @class FBSDKHashtag;
17
18 /**
19   A base interface for content to be shared.
20  */
21 NS_SWIFT_NAME(SharingContent)
22 @protocol FBSDKSharingContent <NSCopying, NSObject, FBSDKSharingValidation, NSSecureCoding>
23
24 /**
25   URL for the content being shared.
26
27  This URL will be checked for all link meta tags for linking in platform specific ways.  See documentation
28  for App Links (https://developers.facebook.com/docs/applinks/)
29  @return URL representation of the content link
30  */
31 @property (nonatomic, copy) NSURL *contentURL;
32
33 /**
34   Hashtag for the content being shared.
35  @return The hashtag for the content being shared.
36  */
37 @property (nullable, nonatomic, copy) FBSDKHashtag *hashtag;
38
39 /**
40   List of IDs for taggable people to tag with this content.
41   See documentation for Taggable Friends
42  (https://developers.facebook.com/docs/graph-api/reference/user/taggable_friends)
43  @return Array of IDs for people to tag (NSString)
44  */
45 @property (nonatomic, copy) NSArray<NSString *> *peopleIDs;
46
47 /**
48   The ID for a place to tag with this content.
49  @return The ID for the place to tag
50  */
51 @property (nullable, nonatomic, copy) NSString *placeID;
52
53 /**
54   A value to be added to the referrer URL when a person follows a link from this shared content on feed.
55  @return The ref for the content.
56  */
57 @property (nullable, nonatomic, copy) NSString *ref;
58
59 /**
60  For shares into Messenger, this pageID will be used to map the app to page and attach attribution to the share.
61  @return The ID of the Facebook page this share is associated with.
62  */
63 @property (nullable, nonatomic, copy) NSString *pageID;
64
65 /**
66  A unique identifier for a share involving this content, useful for tracking purposes.
67  @return A unique string identifying this share data.
68  */
69 @property (nullable, nonatomic, readonly, copy) NSString *shareUUID;
70
71 /**
72  Adds content to an existing dictionary as key/value pairs and returns the
73  updated dictionary
74  @param existingParameters An immutable dictionary of existing values
75  @param bridgeOptions The options for bridging
76  @return A new dictionary with the modified contents
77  */
78
79 // UNCRUSTIFY_FORMAT_OFF
80 - (NSDictionary<NSString *, id> *)addParameters:(NSDictionary<NSString *, id> *)existingParameters
81                                   bridgeOptions:(FBSDKShareBridgeOptions)bridgeOptions
82 NS_SWIFT_NAME(addParameters(_:options:));
83 // UNCRUSTIFY_FORMAT_ON
84
85 @end
86
87 NS_ASSUME_NONNULL_END